项目的角色权限,的判断用户是否有对应页面的访问权限 如果没有登录或者绕开角色权限直接使用url访问 那么不能让其访问
(1)自定义AuthorizeAttribute
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public string Url { get; set; }//通过url 匹配后台的角色 是否有对应的方法方法权限 赞不处理
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//判断是否登录
if (string.IsNullOrEmpty(httpContext.User.Identity.Name))
{
return false;
}
return GetRoles();
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (filterContext.HttpContext.Response.StatusCode == 403)
{
filterContext.Result = new RedirectResult("/Home/Index");
}
}
public bool GetRoles(){
//判断是否url 有角色权限 后台判断代码不贴出
//-----------
return true; //测试暂时返回true
}
}
(2)使用时 需要在FilterConfig中注册该filter
filters.Add(new CustomAuthorizeAttribute ());
(3)mvc 视图中使用
[Authorize]
[CustomAuthorizeAttribute (Url = "/Home/Index")]//判断对应的url 是否有对应的权限
public ActionResult Index()
{
return View();
}