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

  • 相关阅读:
    C#集合类型——Array、ArrayList、List 之浅谈
    C#反射(二)
    ASP.Net内置对象之网页之间传参(二)
    ASP.Net内置对象之网页之间传参(一)
    MyEclipse中设置智能提示
    常用Java片段
    ue中替换行
    正确的计算耗时
    JAVA之GUI编程ACTION事件
    JAVA之GUI编程窗体事件
  • 原文地址:https://www.cnblogs.com/johnblogs/p/14837089.html
Copyright © 2011-2022 走看看