关闭

MVC 中方法视图或者方法判断是否登录

标签: mvc
1197人阅读 评论(0) 收藏 举报
分类:

项目的角色权限,的判断用户是否有对应页面的访问权限  如果没有登录或者绕开角色权限直接使用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();
               
        }


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33115次
    • 积分:516
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:4篇
    • 译文:7篇
    • 评论:6条
    文章分类
    最新评论