定义一个类: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 "";
}
}
对控制器中的某个Action权限控制
public class TestController : ApiController
{
//判断权限为超级管理员的情况下进入此Action
[TestAuthorize(roleName = "超级管理员")]
public string GetIndex()
{
return "";
}
}