.net8 升级
This commit is contained in:
parent
c1dbf6789b
commit
a8bdbaf27b
33
Infrastructure/WebExtensions/IPRateExtension.cs
Normal file
33
Infrastructure/WebExtensions/IPRateExtension.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using AspNetCoreRateLimit;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
|
||||
namespace ZR.Infrastructure.WebExtensions
|
||||
{
|
||||
public static class IPRateExtension
|
||||
{
|
||||
public static void AddIPRate(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
if (services == null) throw new ArgumentNullException(nameof(services));
|
||||
|
||||
//从appsettings.json中加载常规配置,IpRateLimiting与配置文件中节点对应
|
||||
services.Configure<IpRateLimitOptions>(configuration.GetSection("IpRateLimiting"));
|
||||
|
||||
//从appsettings.json中加载Ip规则
|
||||
services.Configure<IpRateLimitPolicies>(configuration.GetSection("IpRateLimitPolicies"));
|
||||
//注入计数器和规则存储
|
||||
services.AddSingleton<IIpPolicyStore, MemoryCacheIpPolicyStore>();
|
||||
services.AddSingleton<IRateLimitCounterStore, MemoryCacheRateLimitCounterStore>();
|
||||
//配置(解析器、计数器密钥生成器)
|
||||
services.AddSingleton<IRateLimitConfiguration, RateLimitConfiguration>();
|
||||
services.AddSingleton<IProcessingStrategy, AsyncKeyLockProcessingStrategy>();
|
||||
|
||||
services.AddRateLimiter(limiterOptions =>
|
||||
{
|
||||
// 配置限流策略
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -12,6 +12,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AspectCore.Abstractions" Version="2.4.0" />
|
||||
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="UAParser" Version="3.1.47" />
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
|
||||
using AspNetCoreRateLimit;
|
||||
using Infrastructure.Converter;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.DataProtection;
|
||||
@ -32,7 +32,7 @@ builder.Services.AddDataProtection()
|
||||
//普通验证码
|
||||
builder.Services.AddCaptcha(builder.Configuration);
|
||||
//IPRatelimit
|
||||
|
||||
builder.Services.AddIPRate(builder.Configuration);
|
||||
|
||||
//builder.Services.AddSession();
|
||||
builder.Services.AddHttpContextAccessor();
|
||||
@ -125,7 +125,8 @@ if (builder.Environment.IsProduction())
|
||||
//使用swagger
|
||||
app.UseSwagger();
|
||||
//启用客户端IP限制速率
|
||||
|
||||
app.UseIpRateLimiting();
|
||||
app.UseRateLimiter();
|
||||
//设置socket连接
|
||||
app.MapHub<MessageHub>("/msgHub");
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user