Naposledy aktivní 1 year ago

Program.cs Raw
1// Existing services ...
2
3builder.Services.AddRateLimiter(options =>
4{
5 options.GlobalLimiter = PartitionedRateLimiter.Create<HttpContext, string>(httpContext =>
6 RateLimitPartition.GetFixedWindowLimiter(
7 partitionKey: httpContext.User.Identity?.Name ?? httpContext.Request.Headers.Host.ToString(),
8 factory: partition => new FixedWindowRateLimiterOptions
9 {
10 AutoReplenishment = true,
11 PermitLimit = Convert.ToInt32(builder.Configuration["RateLimit:Limit"]),
12 QueueLimit = 0,
13 Window = TimeSpan.FromMinutes(Convert.ToDouble(builder.Configuration["RateLimit:WindowInMinutes"])),
14 }));
15 options.RejectionStatusCode = Convert.ToInt32(builder.Configuration["RateLimit:HttpStatusCode"]);
16});
17
18// existing configuration of HTTP request pipeline...
19
20app.UseRouting();
21app.UseRateLimiter();
appsettings.json Raw
This file can't be rendered. Zobrazit celý soubor.