Вот настройки в Program.cs:
Код: Выделить всё
// Cookies for session state
builder.Services.AddDistributedMemoryCache();
builder.Services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromSeconds(10);
options.Cookie.Name = Constants.SessionCookieName;
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = false;
});
Если пользователь решает отказаться от использования несущественных файлов cookie, код C# очищает состояние сеанса и больше не использует его. НО файл cookie все еще там. Пользователь может перейти к списку файлов cookie своего браузера и просмотреть его. А поскольку он зашифрован, все, что видит пользователь, — это зашифрованный текст, и ему просто приходится поверить мне на слово, что я не храню там ничего несущественного.
Скриншот ниже из Edge:

Для пользователей было бы яснее, если бы, когда они отказывались от использования несущественных файлов cookie, файлы cookie состояния сеанса удалялись.
Я пробовал множество способов удалите этот файл cookie состояния сеанса. Создание еще одного файла cookie с тем же именем в контроллерах OnActionExecuting и OnActionExecuted, очистка состояния сеанса и вызов Response.Cookies.Delete, но он просто не исчезнет.
Кроме того, если я вручную удалю файл cookie состояния сеанса и ничего не сохраняю в состоянии сеанса, файл cookie состояния сеанса не будет создан заново. Он создается только тогда, когда я сохраняю что-то в состоянии сеанса. К сожалению, он не удаляется при очистке состояния сеанса.
Как удалить файл cookie состояния сеанса?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ate-cookie
Мобильная версия