Ниже показано, что я попробовал в качестве метода расширения:
Код: Выделить всё
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();
}
});
}
}
Я использую его, как показано ниже
Код: Выделить всё
HttpContext.Session.SetString("SampleKey", "SampleValue", TimeSpan.FromMinutes(5));
Я пробовал и session.remove(key) и session.clear(), но сеанс не удаляется.
Что-то пропущено в этом методе расширения или я создал его неправильного типа?
Это .net 8.0< /p>
Ранее мы делали это как демонстрацию в этом вопросе:
Разное время ожидания сеанса для разных пользователей
Но это не так работа в .net core или .net 8.0
Подробнее здесь: https://stackoverflow.com/questions/790 ... rent-users