Facebook からの認証を処理する HTTP モジュールがあり、クラシック パイプライン モードで正常に動作します。
ただし、統合パイプライン モードでは、モジュールが失敗する原因となっている既定のドキュメントに対する追加の要求パス スルーが表示されます。(Facebook からの) リクエストを見て、アプリにアクセスしているユーザーを取得して検証します。最初のリクエストは正常に認証されますが、投稿されたフォーム変数がない2 番目のリクエストが表示されるため、認証が失敗します。
統合パイプライン モードでは、"/" に対する http 要求により、2 つの AuthenticateRequests が連続して生成されます。
- AppRelativeCurrentExecutionFilePath = "~/" であるリクエスト
- AppRelativeCurrentExecutionFilePath = "~/default.aspx" である要求
その 2 番目の要求はすべてのフォーム値を失うため、認証に失敗します。クラシック モードでは、その 2 番目の要求のみが発生し、フォームの値が保持されます。
ここで何が起こっているのですか?
更新: これは、IIS のモジュール通知からのトレースのイメージです。私のモジュールである FBAuth は AUTHENTICATE_REQUEST を複数回見ていることに注意してください (認証用に 1 つ、認証後用に 1 つ、2 つを期待しますが、4 つ取得します)。
これらのイベントを繰り返し発生させない同じコードを実行している(Vista)ボックスを見つけたので、これはモジュール/フィルター構成に関係があると信じ始めています-それは期待どおりに動作します. どんな違いがあるのか調べてみました...
ありがとう!トム
