ASP. NET Core — запуск функции при завершении сеанса

#c# #asp.net-mvc #asp.net-core

#c# #asp.net-mvc #ядро asp.net

Вопрос:

есть ли способ запустить функцию, если сеанс завершился? Например: я хочу запустить метод, который удаляет каталог, который сохраняет временные данные только для пользователя сеанса. Если пользователь ничего не делает в течение 10 минут, я хочу удалить его каталог, чтобы сэкономить место. Если он совершает через 15 минут новое действие, он становится новым сеансом с новым каталогом для временных данных.

Ответ №1:

Для этого есть несколько вариантов

  1. Объединение в пул (добавьте функцию javascript / jquery с установленным временем ожидания в 15 минут)
 function RefreshSession() {
                $.ajax({
                    url: '/Home/RefreshSession',
                    type: 'Get',
                    data: {},
                    global: false,
                    success: function () {
                        setTimeout("RefreshSession()", 900000);
                    }
                });
            }
  
  1. Если вы выходите из системы от имени пользователя, вы можете использовать параметры аутентификации с использованием cookie .net core.Мероприятия

Услуги.Настройте applicationcookie(параметры => { options.ExpireTimeSpan = промежуток времени.За считанные минуты (15); параметры.Мероприятия.OnSigningOut = yourFunction });

Ответ №2:

 Task.Delay(SessionTimeout).ContinueWith(() => doSomething());