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);
            }
        }

  • 相关阅读:
    sharding-jdbc精确分片配置
    sharding-jdbc注意事项
    sharding-jdbc绑定表和公共表
    go 语言解析yaml文件作为配置文件
    go语言添加全局的json配置文件
    go查询数据库讲单数据结果绑定结构体
    sharding-jdbc分库分表节点路由
    增强for循环对遍历的集合进行增删改操作会出现并发修改异常
    go语言数据模型改变响应给前端字段名
    视图
  • 原文地址:https://www.cnblogs.com/johnblogs/p/14837089.html
Copyright © 2011-2022 走看看