zoukankan      html  css  js  c++  java
  • .net core过滤器中判断controller或者Action是否包含某个属性

     public override void OnActionExecuting(ActionExecutingContext context)
            {
                bool isNoPermissionRequired = false;
                //获取请求进来的控制器与方法
                var controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor;
                if (controllerActionDescriptor != null)
                {
                    //判断请求的控制器有没有NoPermissionRequiredAttribute(不需要权限判断)
                    isNoPermissionRequired = controllerActionDescriptor.ControllerTypeInfo.IsDefined(typeof(NoPermissionRequiredAttribute), true);
                    if (!isNoPermissionRequired)
                    {
                        //判断请求的方法有没有NoPermissionRequiredAttribute
                        isNoPermissionRequired = controllerActionDescriptor.MethodInfo.IsDefined(typeof(NoPermissionRequiredAttribute), true);
                    }
                }
                //需要权限
                if (isNoPermissionRequired)
                {
                    return;
                }

       //auth success,do other things
               base.OnActionExecuting(context);
            }

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

  • 相关阅读:
    消息中间件
    swagger2 接口文档,整个微服务接口文档
    Java并发编程笔记之基础总结(二)
    Java并发编程笔记之基础总结(一)
    Python3 web Crawler
    使用JetBrains Intellij IDEA 开发Java EE应用
    用 Tomcat 和 Eclipse 开发 Web 应用程序
    gvim背景配色
    COBOL学习(2)
    如何删除一个顽固的文件(win)
  • 原文地址:https://www.cnblogs.com/johnblogs/p/14837089.html
Copyright © 2011-2022 走看看