mvc5 自定义实现身份授权

mvc5自带有Identity用户管理,用户授权等,如何利用它们在我们自己的项目中对用户授权,如果授权失败,跳转一个默认的页面给用户提示,对微软Identity用户管理了理解还比较浅,大神误喷

 public class MyAuthorizeAttribute : AuthorizeAttribute
    {

      /// <summary>
        /// 授权的逻辑处理, 授权成功true,否则false      可根据实际需求处理
        /// </summary>
        /// <param name="httpContext">http请求</param>
        /// <returns></returns>
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (httpContext == null)
            {
                throw new ArgumentNullException("HttpContext");
            }
            if (!httpContext.User.Identity.IsAuthenticated)
            {
                return false;
            }
            if (Roles == null)
            {
                return true;
            }
            if (Roles.Length == 0)
            {
                return true;
            }
         if (httpContext.User.IsInRole(Roles))
            {
                return true;
            }          
            return false;
        }
            /// <summary>
            /// 授权失败跳转页面
            /// </summary>
            /// <param name="filterContext"></param>
            protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
            {            
            if(string.IsNullOrEmpty( filterContext.HttpContext.User.Identity.Name))
            {
                filterContext.HttpContext.Response.Redirect("/Account/Login");
            }
            else
            {
                filterContext.HttpContext.Response.Redirect("/Home/Unauthorized");
            }              
                ///继承AuthorizeAttribute默认方法
                //base.HandleUnauthorizedRequest(filterContext);
            }      




    }

调用,在对应的控制器上面或者Action上面添加[MyAuthorize]标示,后面的Attribute可省略

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值