且构网

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

Asp.net MVC授权属性,重定向到自定义的"没有权利和QUOT;页

更新时间:2022-12-09 12:20:34

您可以写这样的自定义过滤器属性:

You could write custom filter attribute like this:

public class CustomAuthorizeAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext.HttpContext.User.Identity == null || !filterContext.HttpContext.User.Identity.IsAuthenticated)
            {
                filterContext.Result = new RedirectResult(System.Web.Security.FormsAuthentication.LoginUrl + "?returnUrl=" +
                filterContext.HttpContext.Server.UrlEncode(filterContext.HttpContext.Request.RawUrl));
            }

            //Check user right here
            if (userNotRight)
            {
                filterContext.HttpContext.Response.StatusCode = 302;
                filterContext.Result = new HttpUnauthorizedResult();
            }
        }
    }

和控制器中使用它:

[CustomAuthorize]
public class HomeController : Controller
{

}