zoukankan      html  css  js  c++  java
  • .Net Core MVC实现自己的AllowAnonymous

    全局过滤,在Startup中ConfigureServices里面添加如下代码

      services.AddMvc(options =>
                    {
                        options.Filters.Add(typeof(MyActionFilterAttribute));
                    }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
    

    MyActionFilterAttribute的实现

    public class MyActionFilterAttribute : ActionFilterAttribute
        {
    
    
    
            public override void OnActionExecuting(ActionExecutingContext context)
            {
    
                var controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor;
                if (controllerActionDescriptor != null)
                {
                  
                    var isDefined = controllerActionDescriptor.ControllerTypeInfo.GetCustomAttributes(inherit: true)
                        .Any(a => a.GetType().Equals(typeof(NoActionFilterAttribute)));
    
                    if (!isDefined)
                    {
                      //业务逻辑
                        base.OnActionExecuting(context);
                    }
                }
    
            
    
            }
        }
    

    NoActionFilterAttribute

        public class NoActionFilterAttribute : Attribute
        {
        }
    

    在不需要验证的Controller上打上NoActionFilter特性即可

       [NoActionFilter]
        public class TestController : Controller
        {
        
        }
    
  • 相关阅读:
    web前段学习2017.6.15
    web前段学习2017.6.13
    web前端2017.6.10
    web前段2017.6.8
    web前段学习2016.6.6
    宏任务与微任务
    浏览器兼容性问题
    TCP 和 UDP 的区别
    React如何渲染大数据量的列表?
    移动端兼容性问题
  • 原文地址:https://www.cnblogs.com/aishangyipiyema/p/9881654.html
Copyright © 2011-2022 走看看