Приложение построено с ASP. NET Core 2.x с использованием аутентификации cook ie и размещено в IIS.
Я пытаюсь установить срок действия cook ie на 120 минут и бездействовать Тайм-аут до 30 минут. ie. в то время как пользователь перемещается по страницам и отправляет формы, если пользователь покидает страницу / форму в течение 30 минут и пытается снова взаимодействовать со страницей или формой, это требует проверки (требует входа в систему) и должно быть возвращено к значению options.LoginPath.
Я попытался установить минимальное значение времени ожидания для простоя, равное 10 секундам, и просмотрел несколько других стековых потоков. Net и статьи Microsoft в поисках подходящего решения для этого.
Будет абсолютно признателен за любые предложения или другие вещи, которые я мог бы попытаться достичь бездействия.
Метод ConfigureServices:
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(options =>
{
options.Cookie.HttpOnly = false;
options.Cookie.Expiration = TimeSpan.FromMinutes(120);
options.ExpireTimeSpan = TimeSpan.FromMinutes(120);
options.AccessDeniedPath = new PathString("/Error");
options.LoginPath = "/Account/Login"; // -> This decides which page to send users to
//When cookie expires the user will be returned to the login page
}
);
//services.AddMemoryCache();
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromSeconds(10);
options.Cookie.IsEssential = true;
});
Метод настройки включает в себя:
app.UseAuthentication();
app.UseSession();
app.UseCookiePolicy();
РЕДАКТИРОВАТЬ 27/04 :
Переход в IIS и пул приложений> Расширенные настройки> Обновлен тайм-аут простоя (минут) до 30 и для параметра Ping Enabled установлено значение False
Открыл сайт и перешел на страницу, к которой имеет доступ только авторизованный человек, и оставил ее на 45 минут, затем попытался отправить HttpPost с помощью формы ssion на странице, и я ожидал, что сессия истекла (у меня есть страница SessionExpired и Error [catch unhandled]), хотя она успешно отправила сообщение.
Также проверили, что 120 минутный повар ie срок действия истек, подтвердил, что он переходит на страницу SessionExpired, как и ожидалось
Есть предложения, что еще можно попробовать в IIS?