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"; } }
原文地址:https://www.cnblogs.com/guyg/p/4104085.html