文章出處

應用場景:在 ASP.NET MVC 應用程序中,需要對用戶身份權限進行驗證,比如沒有登錄或者不符合權限的用戶,訪問 Action 的時候,跳轉到指定頁面。

重寫 Authorize:

public class AdminAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (!httpContext.Request.IsAuthenticated)
        {
            return false;
        }
        else
        {
            if (!UserService.IsInRole(httpContext.User.Identity.Name, "admin"))
            {
                return false;
            }
        }
        return true;
    }

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.Result = new RedirectResult("http://www.sample.com");
    }
}

Action 調用:

[AdminAuthorize]
public ActionResult Home()
{
    return View();
}

注:HandleUnauthorizedRequest 是在沒有通過身份驗證時執行。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()