• 四、Attribute(2)授权角色过滤器


    一、授权过滤器

    1、新建一个mvc 项目

    2、首先创建一个过滤器 MyAuthorizeAttribute 继承AuthorizeAttribute,并重写 AuthorizeCore

     public class MyAuthorizeAttribute : AuthorizeAttribute
        {
    
            protected override bool AuthorizeCore(HttpContextBase httpContext)
            {
                string currentRole = httpContext.Request.Cookies["role"].Value;
                //从Session中获取User对象,然后得到其角色信息。如果用户重写了Identity, 则可以在httpContext.Current.User.Identity中获取  
                if (Roles.Contains(currentRole))
                    return true;
                return base.AuthorizeCore(httpContext);
            }
    
        }

    然后controler 引用过滤器

    [MyAuthorize(Roles = "Admin")]
    public ActionResult Index()
    {
         return Content("过滤器通过了");
    }

     接下来再做一个授权不通过跳转到登录界面的:

    先重写HandleUnauthorizedRequest

     /// <summary>
            /// 重写过滤不过跳转登录界面
            /// </summary>
            /// <param name="filterContext"></param>
            protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
            {
                filterContext.HttpContext.Response.Redirect("/Home/Login");
    
                //base.HandleUnauthorizedRequest(filterContext);
            }

    登录

      public ActionResult login()
            {
                return Content("这是登录界面");
            }

    如图:

  • 相关阅读:
    json转化成实体
    mysql基础知识点三排序分组分页优化
    leetcode4majorityElement
    mysql基础知识点四事务隔离与锁机制
    相应内容格式 gzip
    特殊时间格式转化成date
    20220221_摘抄_一别两宽,各生欢喜
    leetcode数学完美数
    leetocde前缀和
    第五轮算法刷题顺序
  • 原文地址:https://www.cnblogs.com/fger/p/12082235.html
Copyright © 2020-2023  润新知