Use*_*rol 1 security asp.net-mvc authorization
我有一个受保护的控制器AuthorizeAttribute.当授权失败时,我只得到一个空页面.如果我覆盖OnAuthorization()我可以看到在调用后base.OnAuthorization() filterContext.Result为null(为什么?).如果我覆盖OnException()并设置断点,它永远不会命中.可以请某人解释它应该如何工作?如何让它重定向到指定的页面?我可以在哪里注入以记录失败的授权尝试(最好不要编写自定义过滤器)?如果它很重要,我使用MVC 3 RC1.
您想要覆盖AuthorizeAttribute.HandleUnauthorizedRequest方法.这是默认实现:
protected virtual void HandleUnauthorizedRequest(AuthorizationContext filterContext) {
// Returns HTTP 401 - see comment in HttpUnauthorizedResult.cs.
filterContext.Result = new HttpUnauthorizedResult();
}
Run Code Online (Sandbox Code Playgroud)
您需要将Result设置为RedirectResult(或根据您所需的逻辑设置其他结果).这也是记录的好地方.
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |