ダイジェスト認証が必要な Web サイトを IE8 で閲覧すると、パスワードが正しい場合でも 401 が表示されます。Firefox と Chrome は正常に動作します。Fiddler で認証ヘッダーを確認しましたが、すべて問題ないようです。問題のヒントを教えてください。
ps さらに、C# でダイジェスト認証を実装する際にも同じ問題があります。これら 2 つが関連していることはわかりません。
ダイジェスト認証が必要な Web サイトを IE8 で閲覧すると、パスワードが正しい場合でも 401 が表示されます。Firefox と Chrome は正常に動作します。Fiddler で認証ヘッダーを確認しましたが、すべて問題ないようです。問題のヒントを教えてください。
ps さらに、C# でダイジェスト認証を実装する際にも同じ問題があります。これら 2 つが関連していることはわかりません。
私はこの問題に直面していましたが、これがネット上で唯一言及されていました。ダイジェスト アクセス認証では、一連のイベントが発生します。
これは Firefox と Chrome では正常に機能しますが、IE8 では完全には機能しませんでした。
つまり、サーバー上の仮想ロケーションで GET を実行すると機能しましたが、静的ファイルで GET を実行すると機能しませんでした。静的ファイルの場合、何度もログインを求められました。
スニファーを使用した後、仮想ロケーションをリクエストする場合、イベントのシーケンスは上記のように発生することがわかりましたが、静的ファイルをリクエストした場合、シーケンスは次のようになりました。
基本的に静的ファイルの場合、ユーザー名とパスワードを取得しましたが、Authorization ヘッダーで送信することはありませんでした。このヘッダーを取得していないサーバーは 401 で応答し、再度ログインを求めました。
IE8 を適切に動作させるには、これが静的ファイルではなく、仮想の場所であると考えて騙す必要があります。私にとっては、サーバーのソース コードにアクセスできたので簡単でした。アクセス権がない場合、どうすればよいかわかりません。
仮想ロケーションをリクエストした場合。1. GET /virtual_location 2. 次のような WWW-Authenticate ヘッダーを含む 401
WWW-Authenticate: Digest realm="validusers@robapi.abb", domain="127.0.0.1:80", qop="auth", nonce="9001cd8a528157344c6373810637d030", opaque="", algorithm="MD5", stale= "間違い"
opapue パラメータが空の文字列であることに注意してください。
一方、静的ファイルを要求した場合 1. GET /staticfile.txt 2. 次のような WWW-Authenticate ヘッダーを含む 401
WWW-Authenticate: Digest realm="validusers@robapi.abb", domain="127.0.0.1:80", qop="auth", nonce="81bd1ca10ed6314570b7362484f0fd31", opaque="0-1c5-4f7f4c1e", algorithm=" MD5"、古い="FALSE"
ここで、不透明なパラメーターは空でない文字列です。
したがって、不透明なパラメーターが常に空の文字列であることを確認すると、IE8 はそれを仮想ロケーションと見なし、要求は正常に処理されます。サーバーのコードにアクセスできたので、これを行うことができました。
これがお役に立てば幸いです。
よろしく、 サティア・シドゥ
私も同じ問題を抱えていました。私の場合、「<Directory/>」または「<Location/>」のいずれかのディレクティブを使用して、サイト全体にダイジェスト認証を要求していました。どちらの方法も、Mac、PC、iOSのFirefoxとSafariで機能します。残念ながら、IE8はこれに問題があるようです。他のいくつかの変更を試した後、サブディレクトリ( "<Location / private>"など)での認証のみが必要で、コンテンツを保護されたディレクトリに移動すると、IE8が機能し始めることがようやくわかりました。これが重大な違いであることを確認するために、この属性のみを変更して、何度か行ったり来たりしました。
ちなみに、tcpdumpは、IE8がダイジェスト認証を送信しようとしていないことを示したことは注目に値します。認証ダイアログボックスが表示され、ユーザー名とパスワードを取得してから、認証情報のない通常のGETリクエストを送信しました。
コンテンツツリー全体を保護していますか?
IE8(そしてIE8だけ)がこの区別を気にする理由はわかりませんが、これが私が見つけたものです。
問題の解決策を探す際に、あなただけが関連性があると思われる言及であり、ネット上に投稿された答えを見つけることができませんでした。これにより、誰もこの方法でダイジェスト認証を構成しようとしないか、ほとんどの人がFirefox(またはその他のMS以外のブラウザー)をあきらめて使用していると思います。
うわー、私は間違いなく同じ問題を抱えています。2 つの仮想ホストがあり、どちらもダイジェスト認証を使用しています。あるサイトで、サイト全体 (つまり ) を保護しようとしていますが、IE8を除く、私が試したすべてのブラウザーで動作します。他のサイトでは、サブディレクトリのみを保護していますが、IE8 では問題なく動作します。