1

Exchange サーバーに対して PHP を認証する必要があります。正常に接続できたら、Exchange サーバーからデータを抽出して Web アプリケーションで使用できるように、PHP で webdav 要求を記述する必要があります。

2003 Exchange サーバーでフォーム ベース認証 (FBA) がオンになっていることを除けば、やや単純です。FBA をオンにすると、以下の (リンクを参照) ブログ記事に書かれていることを実行することになると思います。私の問題は、ASP に関する彼の指示を PHP に変換する手助けが必要なことです。

http://blogs.msdn.com/webdav_101/archive/2008/12/12/webdav-fba-authentication-sample-explained.aspx

彼がこの記事で説明していることの詳細を理解している人はいますか? どんな洞察も役に立ちます。

必要に応じてより具体的な情報: POST リクエストの構成方法について混乱しています (つまり、通常、フォームにデータを POST するとき、通常、投稿先のページをロードしませんか? 彼の指示では、POST に/exchweb/bin/auth/owaauth.dll に追加します。これはどのように機能しますか?)

リストされている 3 番目のステップを実行する方法についても混乱しています。3) WebReq.KeepAlive と AllowAutoRedirect は、要求で True に設定する必要があります。

それに加えて、投稿データを取得して PHP の Cookie に入れる方法を詳しく説明しているヘルプを実際に使用することができました。

提供されたヘルプに事前に感謝します!

4

3 に答える 3

2

これを行う最善の方法はcurlを使用することだと思います。( http://ca.php.net/curl )

リンクされたページで、最初の例は使用するのに適したクラスです (他の Web サイトへの自動ログインに使用しました)。

キープアライブ (ヘッダー) とリダイレクトがデフォルトでオンになっている必要があります ( curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);)

Web サービスが cookie.txt を作成/変更できることを確認してから、次を試してください。

$cc = new cURL();
$cc->post('http://www.yourexchange.com','destination=https%3A%2F%2F' . $strServerName . '%2Fexchange%2F' . $strUserName . '%2F&username=' . $strDomain . '%5C' . $strUserName . '&password=' . $strPassword . '&SubmitCreds=Log+On&forcedownlevel=0&trusted=0'); 

上記は、リンク先のページの情報からの簡単な翻訳です。特殊文字がある場合は、変数で urlencode() を使用する必要がある場合があります。上記が正常に機能したら、使用できます

$page=$cc->get('http://www.yourexchange.com/?whatever=youneed');

$page には get の結果の文字列が含まれます (このリクエストでテキスト ファイルに保存された Cookie が送信されます)。その後、正規表現を使用して必要なものを取得できます。

これにより、必要なものに非常に近づくはずです。

于 2009-01-13T20:22:37.637 に答える
1

鎖、

はい、これはcookies.txtコードファイルと同じフォルダにある(注:「s」が付いた「cookies」)というファイルを参照していますcurlclass.php

cURLはこれを使用して、後続のリクエストでCookieを保存および送信します。PHPスクリプトを実行しているWebサーバーがクライアントとして機能しているという仮定は正しいです。基本的には、ログインフォームへのPOSTをシミュレートしてExchangeサーバーにログインし、ブラウザと同じようにCookieを保存してリクエストごとに送信します。

ファイルを作成しcookies.txt、Apacheインスタンスを実行しているユーザーがファイルに書き込めるように権限を設定します。

于 2009-02-05T22:58:08.780 に答える
1

テキスト ファイルの実際の名前は「cookies.txt」のようです。この名前で空白のテキスト ファイルを作成し、同じディレクトリにアップロードできます。ftp クライアントではパーミッションを設定できるはずです。777 が必要なパーミッション コードだと思います。許可コードを入力できない場合は、すべてのボックスにチェックを入れて、すべての許可を付与してみてください。

re: 前回の投稿、

そのとおりです。スクリプトが実行される場所は基本的にクライアントであり、Cookie ファイルは、簡単に再利用できるように Cookie を格納する簡単な方法です。

于 2009-01-14T02:00:23.290 に答える