首页 > Web开发 > 详细

.NET Core 自定义过滤器 AllowAnonymous 失效问题

时间:2020-05-26 21:00:34      阅读:156      评论:0      收藏:0      [点我收藏+]
 1         public override async Task OnAuthorizationAsync(AuthorizationFilterContext context)
 2         {
 3             await base.OnAuthorizationAsync(context);
 4 
 5             var descriptor = context.ActionDescriptor as ControllerActionDescriptor;
 6 
 7             //判断是否跳过授权过滤器
 8             if (descriptor.MethodInfo.GetCustomAttributes<AllowAnonymousAttribute>().Any())
 9             {
10                 //return;
11             }
12           
13             if (descriptor.MethodInfo.IsDefined(typeof(AllowAnonymousAttribute), true))
14             {
15                 //return;
16             }
17 
18             if (!context.HttpContext.User.Identity.IsAuthenticated) 
19             {
20                 context.Result = Unauthorized();
21                 return; 
22             }
23 
24             //do something
25         }

代码如上。

但是发现还是有坑,

GetCustomAttributes()

这个方法在基本的类库里边根本找不到,翻了翻其他项目 终于让我找到了!

这个方法在这样一个扩展包中 System.Reflection.Extensions ,引入之后就能找到那个方法了。

 

.NET Core 自定义过滤器 AllowAnonymous 失效问题

原文:https://www.cnblogs.com/TbKing-blogs/p/12967321.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!