且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ASP.NET MVC 4 自定义授权属性 - 如何将未经授权的用户重定向到错误页面?

更新时间:2023-12-01 15:26:40

您必须按照指定覆盖 HandleUnauthorizedRequest 此处.

You have to override the HandleUnauthorizedRequest as specified here.

public class CustomAuthorize: AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        if(!filterContext.HttpContext.User.Identity.IsAuthenticated)
        {
            base.HandleUnauthorizedRequest(filterContext);
        }
        else
        {
            filterContext.Result = new RedirectToRouteResult(new
            RouteValueDictionary(new{ controller = "Error", action = "AccessDenied" }));
        }
    }
}

**注意:更新的条件语句 16 年 1 月

**Note: updated conditional statement Jan '16