MVC API 權限控制


定義一個類:TestAuthorizeAttribute

 public class TestAuthorizeAttribute : AuthorizeAttribute
    {
        public string roleName = "";

        //權限進入
        public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            base.OnAuthorization(actionContext);
        }
        //判斷權限
        protected override bool IsAuthorized(System.Web.Http.Controllers.HttpActionContext actionContext)
        {

            if (roleName == "管理員")
                return true;
            return false;
        }

        //權限為false執行內容
        protected override void HandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            base.HandleUnauthorizedRequest(actionContext);
        }
    }

這里的AuthorizeAttribute引用的命名空間是System.Web.Http;而非是System.Web.Mvc的。

定義一個控制器:TestController

對整個控制器權限控制  

    //判斷權限為超級管理員的情況下進入此控制器
[TestAuthorize(roleName="超級管理員")]
public class TestController : ApiController
    {
        public string GetIndex() 
        {
            return "123";
        }
    }

對控制器中的某個Action權限控制

    public class TestController : ApiController
    {
    //判斷權限為超級管理員的情況下進入此Action [TestAuthorize(roleName
= "超級管理員")] public string GetIndex() { return "123"; } }

 


免責聲明!

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



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