最近公司再用.net core做项目。 碰到了登入验证权限这一块。使用过滤器不需要每个方法上都去判断登入是否失效。有的时候还会忘记对验证

希望对大家有帮助

 


mvc core的写法:

public class PermissionRequiredAttribute : ActionFilterAttribute
    {  

public override void OnActionExecuting(ActionExecutingContext filterContext)

        {
            var isDefined = false;
            var controllerActionDescriptor = filterContext.ActionDescriptor as ControllerActionDescriptor;
            if (controllerActionDescriptor != null)
            {
                 isDefined = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true)
                    .Any(a => a.GetType().Equals(typeof(NoPermissionRequiredAttribute)));
            }
            if (isDefined) return;
                if (MyHttpContext.Current.Session.GetString("LoginInfo") == null)
                {  
                    filterContext.Result = new RedirectResult("/Account/Login");
                }
            base.OnActionExecuting(filterContext);
        }

}

//不需要登入

public class NoPermissionRequiredAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
        }

    }

 //在不需要的方法上面打上标记

  [NoPermissionRequired]
        public ActionResult Login()

        {

      }

相关文章:

  • 2022-02-18
  • 2022-12-23
  • 2021-11-26
  • 2022-12-23
  • 2021-11-21
  • 2018-03-06
  • 2021-12-13
  • 2021-09-21
猜你喜欢
  • 2021-12-10
  • 2021-11-01
  • 2022-02-16
  • 2022-01-17
  • 2021-09-17
  • 2021-08-13
相关资源
相似解决方案