news 2026/5/1 7:57:37

.NET 7.0在.NET Core Web API中实现限流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
.NET 7.0在.NET Core Web API中实现限流

参考文档:https://blog.csdn.net/zls365365/article/details/133627445

文章目录

  • 安装NuGet包
  • 配置appsettings.json
  • 添加中间件
  • 测试结果

安装NuGet包

配置appsettings.json

//配置限流,IP限制适应于所有全局,规则为1分钟最多访问10次"IpRateLimiting":{"EnableEndpointRateLimiting":false,"StackBlockedRequests":false,"RealIpHeader":"X-Real-IP",//服务器背后是一个反向代理,如果你的代理服务器使用不同的页眉然后提取客户端IP X-Real-IP使用此选项来设置"ClientIdHeader":"X-ClientId",//取白名单的客户端ID。如果此标头中存在客户端ID并且与ClientWhitelist中指定的值匹配,则不应用速率限制。"HttpStatusCode":429,//限制状态码//"IpWhitelist": [ "127.0.0.1" ],"IpWhitelist":[],//IP白名单:支持Ip v4和v6"GeneralRules":[{"Endpoint":"*",//端点路径"Period":"1m",//时间段,例如1m,您可以使用以下期间类型之一:s, m, h, d。"Limit":10//调用限制}]}

#region注册AspNetCoreRateLimit限流组件builder.Services.AddMemoryCache();//下面的IpRateLimiting为限流策略的配置文件结点名称,可以配置多个策略builder.Services.Configure<IpRateLimitOptions>(builder.Configuration.GetSection("IpRateLimiting"));//添加对内存中的 IP 策略存储的支持builder.Services.AddSingleton<IIpPolicyStore,MemoryCacheIpPolicyStore>();builder.Services.AddSingleton<IRateLimitCounterStore,MemoryCacheRateLimitCounterStore>();builder.Services.AddSingleton<IRateLimitConfiguration,RateLimitConfiguration>();builder.Services.AddInMemoryRateLimiting();#endregion

添加中间件

app.UseIpRateLimiting();

测试结果

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:44:57

基于51/STM32单片机智能分拣系统扫码二维码刷卡识别传送APP设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51/STM32单片机智能分拣系统扫码二维码刷卡识别传送APP设计(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码STM32-S128RFID刷卡识别分拣计数信息管理电机传送舵机导向按键声光提醒TFT彩屏(无线方式选择) 产品功能描述&…

作者头像 李华
网站建设 2026/5/1 5:45:14

你还在用==null?Java判空最新标准写法曝光

第一章&#xff1a;你还在用null&#xff1f;Java判空最新标准写法曝光在现代Java开发中&#xff0c;直接使用 null 进行空值判断已逐渐被视为过时且易出错的做法。随着Java生态的演进&#xff0c;更安全、更具表达力的替代方案已被广泛采纳。使用Objects.requireNonNull检查前…

作者头像 李华
网站建设 2026/4/4 21:43:52

彻底搞懂Java字符串判空:从if语句到Optional的演进之路

第一章&#xff1a;Java字符串判空的核心意义与常见误区 在Java开发中&#xff0c;字符串是最常用的数据类型之一&#xff0c;而字符串判空操作则是程序健壮性的基础保障。不正确的判空逻辑可能导致空指针异常&#xff08;NullPointerException&#xff09;&#xff0c;进而引发…

作者头像 李华
网站建设 2026/5/1 6:52:46

告别无效Debug!飞算JavaAI一键修复器实测:精准排错,高效提效

在Java开发领域&#xff0c;Bug排查与修复始终占据着开发人员大量工作时间&#xff0c;即便经验丰富的开发者&#xff0c;也难免在冗长的报错日志中耗费精力&#xff0c;而新手更是容易陷入“看不懂日志、找不到错误、改不对代码”的困境。为帮助开发者摆脱无效Debug的内耗&…

作者头像 李华
网站建设 2026/4/10 11:12:12

7.2 版本流转:从 Docker Image Tag 视角看制品晋升策略

7.2 版本流转:从 Docker Image Tag 视角看制品晋升策略 1. 引言:Tag 是制品的“身份证” 在云原生时代,Docker 镜像 Tag 不仅仅是版本号,更是制品的“身份证”。它承载着: 来源信息:哪个分支、哪个提交构建的? 环境信息:这个镜像在哪个环境验证过? 质量信息:这个镜…

作者头像 李华
网站建设 2026/5/1 7:52:41

8.2 日志系统选型:Loki vs ELK,谁更适合云原生时代?

8.2 日志系统选型:Loki vs ELK,谁更适合云原生时代? 1. 引言:日志系统的演进 在容器化之前,日志管理相对简单:应用把日志写到文件,运维用 tail -f 查看,或者用 rsyslog 集中收集。 但在 Kubernetes 环境中: Pod 随时可能重启,日志文件会丢失 多个副本的日志混在一…

作者头像 李华