当前位置: 首页 > news >正文

.NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证

        public Task InvokeAsync(HttpContext context){// 获取终点路由特性var endpointFeature = context.Features.Get<IEndpointFeature>();// 获取是否定义了特性var attribute = endpointFeature?.Endpoint?.Metadata?.GetMetadata<AllowAnonymousAttribute>();if (attribute != null){logger.LogInformation($"{context.Request.Path} 无需授权");}else{logger.LogInformation($"{context.Request.Path} 需要授权");}// 调用下一个中间件return _next(context);}

注意事项

要想上面操作有效,也就是不为 null,需要满足以下条件,否则 endpointFeature 返回 null

  • 启用端点路由 AddControllers() 而不是 AddMvc()
  • UseRouting() 和 UseEndpoints() 之间调用你的中间件

 

 

相关文章:

  • android ——动画
  • 几个小窍门
  • Python基础-列表、元组、字典、集合
  • 【python】Debian安装miniconda、spyder、tushare
  • K8S(十一)—Service详解
  • C#中的协变和逆变
  • 【MYSQL】-库的操作
  • JVM- 为什么G1垃圾回收器需要有大对象区
  • 物业该如何处理物业报修问题?工单管理系统如何统一管理报修需求?
  • 0089__一条普遍存在于嵌入式实时系统(RTOS)中的嵌套使用互斥量的bug分析
  • Apollo Planning——换道:LANE_CHANGE_DECIDER
  • 2312d,D语言单元测试等
  • 超级计算机与天气预报:精准预测的科技革命
  • x3::forward_ast
  • 七大主流的HttpClient程序比较
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • js作用域和this的理解
  • Python进阶细节
  • SpingCloudBus整合RabbitMQ
  • SpringBoot 实战 (三) | 配置文件详解
  • springboot_database项目介绍
  • Vue全家桶实现一个Web App
  • Windows Containers 大冒险: 容器网络
  • yii2中session跨域名的问题
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 创建一个Struts2项目maven 方式
  • 飞驰在Mesos的涡轮引擎上
  • 缓存与缓冲
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 解析带emoji和链接的聊天系统消息
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 用Canvas画一棵二叉树
  • 容器镜像
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​一些不规范的GTID使用场景
  • (¥1011)-(一千零一拾一元整)输出
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (175)FPGA门控时钟技术
  • (6)添加vue-cookie
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (超详细)语音信号处理之特征提取
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (算法二)滑动窗口
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • *** 2003
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • *上位机的定义
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .Net MVC + EF搭建学生管理系统
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NetCore项目nginx发布
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2