周口市网站建设_网站建设公司_域名注册_seo优化
2026/3/2 10:46:22 网站建设 项目流程

参考文档: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();

测试结果

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询