mvc權限驗證--AuthorizeAttribute


在做后台管理時用戶登錄后就需要驗證哪些權限了,沒有登錄的就直接退出到登錄頁面。

系統有自帶的權限[Authorize],可用於幾個地方:

1、將屬性[Authorize]置於相關的action上方,驗證當前

[Authorize]
 public ActionResult Index()
 {
     return View();
 }

2、將屬性[Authorize]置於控制器上方

[Authorize]
public class MainController : Controller
{
    //
}

3、將Authorize應用到全局范圍類,加入全局過濾器集合RegisterGlobalFilters方法,\App_Start\FilterConfig.cs:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
      filters.Add(new AuthorizeAttribute()); //新加行
      filters.Add(new HandleErrorAttribute());
}

PS:如果有些控制器的action方法不需要驗證,則在action上添加屬性[AllowAnonymous]

但系統自帶的不一定我們適用,這就要我們自定義了,規則我們可以自己寫

新建AdminAuthorizeAttribute類,繼承AuthorizeAttribute類,重寫AuthorizeCore、HandleUnauthorizedRequest方法

     protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (httpContext.Session["username"] != null)
            {
                return true;
            }
            return false;
        }

        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            filterContext.HttpContext.Response.Redirect("/Admin/Account/Login");
        }

用法同上,把[Authorize]改為[AdminAuthorizeAttribute]就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM