#c# #asp.net-mvc #asp.net-core
#c# #asp.net-mvc #ядро asp.net
Вопрос:
есть ли способ запустить функцию, если сеанс завершился? Например: я хочу запустить метод, который удаляет каталог, который сохраняет временные данные только для пользователя сеанса. Если пользователь ничего не делает в течение 10 минут, я хочу удалить его каталог, чтобы сэкономить место. Если он совершает через 15 минут новое действие, он становится новым сеансом с новым каталогом для временных данных.
Ответ №1:
Для этого есть несколько вариантов
- Объединение в пул (добавьте функцию javascript / jquery с установленным временем ожидания в 15 минут)
function RefreshSession() { $.ajax({ url: '/Home/RefreshSession', type: 'Get', data: {}, global: false, success: function () { setTimeout("RefreshSession()", 900000); } }); }
- Если вы выходите из системы от имени пользователя, вы можете использовать параметры аутентификации с использованием cookie .net core.Мероприятия
Услуги.Настройте applicationcookie(параметры => { options.ExpireTimeSpan = промежуток времени.За считанные минуты (15); параметры.Мероприятия.OnSigningOut = yourFunction });
Ответ №2:
Task.Delay(SessionTimeout).ContinueWith(() => doSomething());