asp.net-mvc-3 – 在MVC中设置403错误页面

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 在MVC中设置403错误页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我覆盖了执行自定义授权的类
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,Inherited = true,AllowMultiple = true)]
public class AuthorizeAttribute : System.Web.Mvc.AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(System.Web.Mvc.AuthorizationContext filterContext)
    {
        if (filterContext.HttpContext.Request.IsAuthenticated)
        {
            filterContext.Result = new System.Web.Mvc.HttpStatusCodeResult(403);
        }
        else
        {
            base.HandleUnauthorizedRequest(filterContext);
        }
    }
}

现在在web.config中我已经配置了403错误页面

<customErrors defaultRedirect="/Shared/Error" mode="On">
  <error statusCode="403" redirect="/Shared/UnAuthorize" />
</customErrors>

但浏览器仍然显示403的默认错误页面,
我在这里错过什么,任何想法

解决方法

只是一个小提示/注释除了Max B.答案:

当我使用自定义错误时,我会创建一个ErrorsController和一个UnAuthorize ActionResult并执行以下操作:

<error statusCode="403" redirect="/Errors/UnAuthorize" />

这样我可以在控制器中添加额外的信息或执行其他操作,例如:

登录数据库,有人试图访问认证区域.
>计数错误
>也许是可以用来发送管理信息的错误或报告表.
> …

这样你就可以对发生的事情有更多的控制.

猜你在找的asp.Net相关文章