.net core 登入全局验证过滤器


最近公司再用.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()

        {

      }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM