我有一个ASP.NET MVC3应用程序,并将Windows身份验证部署到IIS6。如果经过身份验证的用户单击了他们未被授权查看的链接,则会按照预期提示他们输入其用户名和密码(在浏览器对话框中,而不是页面上)。获取空白页而不是401错误页面
但是,在单击取消或三次输入无效凭据后,我看到一个空白白页,而不是看到401未授权页面。
看着提琴手,点击取消后有三个请求/回应。下面是响应摘要和标题:
ASP.NET访问被拒绝的消息(401.2)
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 缓存控制:私人 内容类型:文本/ HTML;字符集= UTF-8 的Content-Length:1701 代理支持:基于会话的认证
IIS您无权查看此页(401.1)
HTTP/1.1 401未经授权 内容 - 长度:1539 的Content-Type:text/html的 服务器:Microsoft-IIS/6.0 WWW验证:NTLM TlRMTVNTUAACAAAADAAMADgAAAAF ......(略去了) X供电,通过:ASP.NET 日期:周五,20 Jul 2012 14:34:21 GMT 代理支持:基于会话的身份验证
空响应
HTTP/1.1 401未经授权 日期:星期五,2012年7月20日14时34分21秒GMT 服务器:Microsoft-IIS/6.0 WWW身份验证:协商 WWW验证:NTLM X-已启动方式:ASP.NET X-ASPNET-版本:4.0.30319 X-AspNetMvc-版本:3.0 缓存控制:私人 的Content-Length:0 代理支持:基于会话的验证
我如何得到这个显示401错误页面?
更新1:
这里是我的web.config错误部分。我也使用HandleErrorAttribute
。
我怀疑IIS是返回空白页而不是ASP.NET,但我不知道如何证明。
更新2:
这很有趣。如果我刷新空白页面,我看到ASP.NET访问被拒绝消息。
只是一个猜测,但它试图将它们重定向回到用户名和密码页面,因为它们仍然没有被授权?既然它已经认为它处理了用户,那么视图就没有任何东西可以显示了? – 2012-07-20 15:31:30
它不是一个登录页面,它是浏览器登录对话框。 – jrummell 2012-07-20 16:35:21
对不起,没有看到那部分。第三次尝试后,您是否将他们重定向到401页面?如果没有,那么你仍然在同一页面上,但你没有得到任何内容显示,因为服务器不发送任何内容。 – 2012-07-20 17:28:48