ノート:
この質問は、以前の改訂から範囲が広がりました。誰でも簡単に再現できるように、問題を単純化するように努めました。
Fiddlerを使用Authorization
すると、HTTPリクエストからヘッダーを消去した後、デフォルトページに対して任意のリクエストを再生でき200 OK
、有効なデータでの応答を取得できます。
バウンティアップデート
この正確な動作を再現する手順は次のとおりです。
1. ASP.NETで「新しいWebサイト」を作成し、「InsecureWebsite」という名前を付けてください。
2.編集web.config
して、認証されていないすべてのユーザーを拒否します。
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
3. WebサイトをDEVサーバー上の任意のディレクトリに公開し、アプリケーションの仮想ディレクトリを作成します
4.アプリケーションでスクリプトアクセス(.ASP)と統合Windows認証が有効になっていることを確認します
5. Fiddlerを開いて、トラフィックをキャプチャします
6.お気に入りのブラウザにページをロードし、Fiddler内の[インスペクター]タブを確認すると、次のようなリクエストが表示されます。
GET / InsecureWebsite / HTTP / 1.1 ホスト:dev.subdomain.example.com ユーザーエージェント:Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US; rv:1.9.1)Gecko / 20090624 Firefox / 3.5(.NET CLR 3.5.30729) 受け入れる:text / html、application / xhtml + xml、application / xml; q = 0.9、* / *; q = 0.8 Accept-Language:en-us、en; q = 0.5 Accept-Encoding:gzip、deflate Accept-Charset:ISO-8859-1、utf-8; q = 0.7、*; q = 0.7 キープアライブ:300 接続:キープアライブ 承認:NTLM {Base64でエンコードされた認証データ}
への最初の要求は、Default.aspx
を返し、401 Unauthorized
ネゴシエーションに入り、最後にを返します200 OK
。
FiddlerではAuthorization
、再生されたリクエストからヘッダーを直接消去しDefault.aspx
ても、を取得できます200 OK
。そんなことがあるものか?
解決
Fiddlerはリクエストを行うときに同じ基本接続を使用することが判明したため、接続が認証されると、同じ接続上のすべてのリクエストも最初のリクエストと同じユーザーとして認証されます。ここでFiddlerでこの機能をオフにすることができます:
Fiddlerオプションのスクリーンショットhttp://john.cognitivedelay.com/images/fiddler-options.gif
これがチェックされていない場合、Fiddler内から再生されたリクエストは、401 Unauthorized
期待どおりにを返します。
返信する時間を提供してくれたすべての人に感謝します!