AntiForgeryToken Asp Net Core рандомно пересоздается, как исправить?
Проблема заключается в том, что при Авторизации и Аутентификации на сайте через хостинг(reg.ru), сервер Plesk(IIS), ASP NET CORE - периодически пересоздается AntiForgeryToken, Особенно после POST запросов, но и без таковых также пересоздается новый токен(только реже).
Соответственно Аутентификация сбрасывается и приходится переавторизовываться.
Если удалить токен, то создается токен с тем же Value, но с другим Expires/Max-Age , то есть не выкидывает с авторизации.
Данной проблемы не наблюдается при тестировании на localhost.
Из того что используется на сайте:
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options => {
options.Cookie.Name = "AUTHCOOKIE";
});
builder.Services.AddAuthorization();
builder.Services.AddControllersWithViews();
Также изменил AntiForgeryToken:
builder.Services.AddAntiforgery(options => {
options.Cookie.Name = "ANTIFORGERY-SHVEDOVA";
options.Cookie.Expiration = TimeSpan.FromDays(3650);
options.FormFieldName = "AntiforgeryShvedovaAV";
options.HeaderName = "X-CSRF-TOKEN-SHVEDOVAAV-NAME";
options.SuppressXFrameOptionsHeader = false;
});
Аутентификация происходит так:
HttpContext.SignInAsync(claimsPrincipal);
Заранее спасибо, и извиняюсь если что не так описал...(первый раз)
Ответы (1 шт):
Вопрос решен. Сброс AntiforgeryToken был из-за превышения лимита памяти текущего тарифа на хостинге. Сообщение из лога:
02.07.2022 0:30:51 A worker process with process id of '244048' serving application pool 'u1567816.plsk.regruhosting.ru(domain)(4.0)(pool)' has requested a recycle because it reached its virtual memory limit.
Чтобы избежать данного инцидента, нужно повысить лимит, либо снизить нагрузку на сервер.