Странное поведение с сеансом asp.net core2.2 (пустельга) с Google Chrome - PullRequest
0 голосов
/ 25 июня 2019

В моем (самостоятельно размещенном) приложении я использую переменную сеанса в качестве тривиального «переключателя»:

   string PunkteAbzugBeauty = HttpContext.Session.GetString("SuchPunkteAbzugBeauty");
   if (PunkteAbzugBeauty == null) 
          {
            HttpContext.Session.SetString("SuchPunkteAbzugBeauty", "1");
            SuchPunkteAbzugBeauty = true;
          }
          else 
          {
            SuchPunkteAbzugBeauty = false;
          }

Цель состоит в том, чтобы для SuchPunkteAbzugBeauty (запрашиваемого в следующем коде) было установлено значение true для каждого сеанса вовремя.

Проблема: Это работает во всех протестированных браузерах (IE, Edge, FireFox) , за исключением Google Chrome (версия 75.0.3770.100).

В режиме разработки GC я вижу .AspNetCore.Session (1) с (зашифрованным) содержимым (2) , и для параметра Expires установлено значение «Session» (3) что должно быть правильно:

screenshot at runtime

Если я закрою браузер и перезапущу GC, содержимое (2) точно так же, как и раньше.

Если я сделаю то же самое с FireFox, содержимое (2) меняется при каждом новом запуске (что я и ожидал). Моя логика работает с любым браузером, кроме GC (SuchPunkteAbzugBeauty всегда имеет значение false).

Мне кажется, что GC «кэширует» или восстанавливает AspNetCore.Session в фоновом режиме при перезапуске браузера.

Кто-нибудь еще с подобными проблемами?
Я что-то пропускаю (есть специальные настройки для GC, я не знаю)?

...