IIS6にWindows認証を展開したASP.NET MVC3アプリケーションがあります。認証されたユーザーが、表示する権限のないリンクをクリックすると、期待どおりユーザー名とパスワードを(ページではなくブラウザのダイアログで)入力するよう求められます。401エラーページの代わりに空白ページを取得する
ただし、[キャンセル]をクリックするか、無効な認証情報を3回入力すると、401 Unauthorizedページが表示されるのではなく、空白のページが表示されます。
Fiddlerを見ると、[キャンセル]をクリックした後に3つの要求/応答があります。
ASP.NETのアクセスが拒否されたメッセージ(401.2)
HTTP/1.1 401不正な 日:金、2012年7月20日午後2時34分21秒GMT サーバーここでは、応答の概要とヘッダがあります:マイクロソフト-IIS/6.0 WWW認証: WWW認証をネゴシエート:NTLM X-パワード・バイ:ASP.NET X-ASPNET-バージョン:4.0.30319 のCache-Control:プライベート のContent-Type:テキストを/ html;文字セット= UTF-8 のContent-Length:1701 プロキシのサポート:
は、あなたがこのページを表示する権限がありませんIISセッションベースの認証の(401.1)
HTTP/1.1 401不正な たContent長さ:1539 のContent-Type:text/htmlの サーバー:マイクロソフト-IIS/6.0 WWW認証:NTLM TlRMTVNTUAACAAAADAAMADgAAAAF ...(簡潔にするため省略) X-Poweredのバイ:ASP.NET 日:金、20 2012年7月14日14:34:21 GMT プロキシサポート:セッションベース認証
空の応答
HTTP/1.1 401不正な 日:金、2012年7月20日午前14時34分21秒GMT サーバー:マイクロソフト-IIS/6.0 WWW認証: WWW認証をネゴシエート:NTLM X-パワード・バイ:ASP.NET X-ASPNET-バージョン:4.0.30319 X-AspNetMvc-バージョン:3.0 のCache-Control:プライベート のContent-Length:0 プロキシのサポート:セッションベースの認証の
401エラーページを表示するにはどうすればよいですか?
アップデート1:
は、ここに私のweb.configエラーのセクションです。
<customErrors mode="RemoteOnly" defaultRedirect="~/Error" />
私もHandleErrorAttribute
を使用しています。
IISがASP.NETではなく空白のページを返すと思われますが、その証明方法はわかりません。
更新2:
これは興味深いものです。空白のページを更新すると、ASP.NET Access is Deniedというメッセージが表示されます。
まだ推測されていませんが、Username and Passwordページにリダイレクトしようとしていますか?そして、それはすでにそれがビューを表示する何もないユーザーを処理したと思うので? –
これはログインページではなく、ブラウザのログインダイアログです。 – jrummell
ああ、その部分を見て、ごめんなさい。 3回目の試行後、401ページにリダイレクトしていますか?そうでない場合は、同じページに残りますが、サーバーが送信しないため、コンテンツが表示されません。 –