我试图了解在MVC Preview 4中使用Authorize [Authorize] Action Filter时错误处理的工作原理.
我有一个看起来像这样的动作:
[Authorize(Roles = "DOMAIN\\NOTAUTHORISED_ROLE" )] [HandleError] public ActionResult NeedAuthorisation() { throw new NotImplementedException(); }
当我访问网址:时http://localhost:2197/testAuthorisation/NeedAuthorisation
,我的浏览器中出现了一个空白页面.在Firebug中,我可以看到已发出请求并401 - Unauthorised
返回了响应状态.但我没有被重定向或返回了customError.使用我授权的角色时,一切都按预期工作.
这是使用Windows身份验证.我正在编写一些代码来尝试Forms身份验证,看看我是否遇到了同样的问题.我已
在testAuthorisation文件夹和Shared文件夹中设置并创建了错误页面.
我最终发现这个MVC教程解决了我的问题:
确切地说,当您尝试在没有正确权限的情况下调用控制器操作时会发生什么情况取决于启用的身份验证类型.默认情况下,使用ASP.NET Development Server时,只需获得一个空白页面.该页面提供401 Not Notized HTTP响应状态.