Чтобы иметь разное время ожидания сеанса для разных пользователейC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Чтобы иметь разное время ожидания сеанса для разных пользователей

Сообщение Anonymous »

Я пытаюсь создать метод расширения, позволяющий иметь значение переменной для тайм-аута сеанса. Сценарий таков: мне нужно другое значение тайм-аута сеанса в зависимости от некоторого условия. Здесь я использую простое сопоставление имени пользователя и пароля для аутентификации, без класса идентификации.
Ниже показано, что я попробовал в качестве метода расширения:

Код: Выделить всё

    public static class SessionExtensions
{
public static void SetString(this ISession session,
string key,
string value,
TimeSpan expireAfter)
{
lock (session)
{
session.SetString(key, value);
}

Task.Delay(expireAfter).ContinueWith((task) =>
{
lock (session)
{
session.Remove(key);
session.Clear();
}
});
}
}
Я создал метод расширения для ISession, в котором я указываю ключ, значение и значение тайм-аута.
Я использую его, как показано ниже

Код: Выделить всё

HttpContext.Session.SetString("SampleKey", "SampleValue", TimeSpan.FromMinutes(5));
Срок действия истекает через 5 минут. Он также устанавливает сеанс, когда вызывается session.Remove(key) и показывает, что конкретный ключ удален из сеанса. Но когда я выполняю в приложении какой-либо другой метод, кроме HttpContext.Session.GetString("SampleKey"), получаю значение.
Я пробовал и session.remove(key) и session.clear(), но сеанс не удаляется.
Что-то пропущено в этом методе расширения или я создал его неправильного типа?
Это .net 8.0< /p>
Ранее мы делали это как демонстрацию в этом вопросе:
Разное время ожидания сеанса для разных пользователей
Но это не так работа в .net core или .net 8.0

Подробнее здесь: https://stackoverflow.com/questions/790 ... rent-users
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»