В моем классе запуска я включаю хранилище сеансов с этой строкой:
services.AddDistributedMemoryCache()
.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(20);
options.Cookie.HttpOnly = true;
})
Однако, если я правильно понимаю, установка свойства IdleTimeout
просто означает, что сеанс начнется заново, если пользователь не выполнит никаких действий в течение> 20 минут. В моем приложении есть опрос, который использует информацию о пользователе в хранилище сеансов каждые 5-10 секунд, поэтому я не думаю, что это когда-нибудь пригодится. Полномочия и роли пользователя могут отличаться от действий, выполняемых вне браузера текущего пользователя, поэтому я хотел бы ограничить хранение сеанса до 1 минуты. Я не могу найти какое-либо точное слово о том, что истечение по умолчанию или как правильно установить это.
Класс CookieBuilder имеет опции Expiration и MaxAge, но я не знаю, какой из них необходим. Я также читал, что Истечение срока действия игнорируется , так что это еще больше увеличивает путаницу в этой теме.
Обновление: я получаю это сообщение, когда пытаюсь установить срок действия: «Не удается установить срок действия для файла cookie, определенного SessionOption», поэтому я установил MaxAge на 1 минуту, но я вижу, что сеанс все еще имеет старый пользовательские данные в нем по прошествии более 1 минуты.