Однако, когда я добавляю IpRateLimitPolicies с определенным IP-адресом, настройки не будут применены.Я использую Postman и на этот раз в прокси я добавил IP-адрес 127.0.0.1. Я вижу, что IP-адрес, соответствующий API, установлен правильно, когда я использую Request.HttpContext.Connection.RemoteIpAddress;
Я зарегистрировал их, как показано в program.cs:
Код: Выделить всё
_serviceCollection.AddOptions();
_serviceCollection.AddMemoryCache();
_serviceCollection.Configure(builder.Configuration.GetSection("IpRateLimiting"));
_serviceCollection.Configure(builder.Configuration.GetSection("IpRateLimitPolicies"));
_serviceCollection.AddInMemoryRateLimiting();
_serviceCollection.AddSingleton();
_serviceCollection.AddSingleton();
_serviceCollection.AddSingleton();
_serviceCollection.AddSingleton();
Код: Выделить всё
app.UseIpRateLimiting();Код: Выделить всё
{
"IpRateLimiting": {
"EnableEndpointRateLimiting": false,
"StackBlockedRequests": false,
"RealIPHeader": "X-Real-IP",
"ClientIdHeader": "X-ClientId",
"IpWhitelist": [ ],
"EndpointWhitelist": [],
"ClientWhitelist": [],
"HttpStatusCode": 429,
"GeneralRules": [
{
"Endpoint": "*",
"Period": "10s",
"Limit": 1
}
]
},
"IpRateLimitPolicies": {
"IpRules": [
{
"Ip": "127.0.0.1",
"Rules": [
{
"Endpoint": "*",
"Period": "20s",
"Limit": 2
}
]
}
]
}
Интересно, я что-нибудь пропустил?
Подробнее здесь: https://stackoverflow.com/questions/710 ... eratelimit
Мобильная версия