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

news/2025/4/21 9:56:49/

        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() 之间调用你的中间件

 

 


http://www.ppmy.cn/news/1274726.html

相关文章

【工具库推荐】小程序一款阳历阴历(农历)日历组件

展示&#xff1a; 使用方法&#xff1a; 组件目录如上图 调用如下图 第一步、在pages/rl/index.json中设置引用这个日历组件 &#xff0c;代码如下&#xff1a; 第二步、在需要调用页面wxml文件中引用这个日历组件&#xff0c;并绑定相应的属性&#xff0c;如下图 属性解释 …

亿某通电子文档安全管理系统任意文件上传漏洞 CNVD-2023-59471

1.漏洞概述 亿某通电子文档安全管理系统是一款电子文档安全防护软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产。亿赛通电子文档安全管理系统UploadFileFromClientServiceForClient接口处存在任意文件…

Android的基础开发

基础开发 listView ListView就是列表条目&#xff0c;可以向下滚动&#xff0c;也可以点击。 首先设置两个视图布局 activity_main2.xml【充当容器{ListView}】 <ListViewandroid:layout_width"match_parent"android:layout_height"match_parent"a…

mv命令使用

1 移动和重命名文件 mv 用cp命令复制文件看起来非常简单&#xff0c;但是移动文件呢&#xff1f;在命令全名的英文单词中去掉多余的相似元音&#xff0c;我们就有了mv命令&#xff0c;是move的简写。 很快你将注意到&#xff0c;前面学到的cp命令的大部分选项与mv命令使用的…

【STM32】USART串口协议

1 通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统 通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 USRT&#xff1a;TX是数据发送引脚&#xff0c;RX是数据接受引脚&#xff1b; I2C&#xf…

1641:【例 1】矩阵 A×B

【题目描述】 矩阵 A 规模为 nm &#xff0c;矩阵 B 规模为 mp &#xff0c;现需要你求 AB 。 矩阵相乘的定义&#xff1a;nm 的矩阵与 mp 的矩阵相乘变成 np 的矩阵&#xff0c;令 aik 为矩阵 A 中的元素&#xff0c;bkj 为矩阵 B 中的元素&#xff0c;则相乘所得矩阵 C 中的…

制造行业CRM选型:好用的系统有这五大优势

制造业CRM管理系统的线索、订单、销售、营销功能都在制造业务环节中起着重要作用。制造业CRM系统有什么好处&#xff1f;制造业CRM的五大优势。在团队协作优化销售策略等方面都发挥着重要作用。 一、提高线索利用率 功能&#xff1a;线索管理 CRM系统助力企业梳理整合来自官…

【计算机网络】TCP协议——1.报文格式详解

前言 上篇讲解了UDP报文格式。TCP和UDP是同层协议&#xff0c;都属于传输层&#xff0c;数据来源于上层——应用层 目录 一. TCP协议概述 二. TCP报文格式 1. 两个问题 2. 确认号和序列号 3. 标志位字段 4. 窗口大小 5. 校验和字段 6. 紧急指针与紧急数据 7. 选项字…