Состояние сеанса не поддерживается при доступе к сайту из cordova (android / ios webview) или Chrome> 80 после обновления windows 10 - PullRequest
1 голос
/ 07 января 2020

Идентификатор сеанса постоянно меняется в каждом запросе при доступе к приложению asp. net mvc из cordova (android / ios webview). Это произошло только после windows 10 обновления , до того как все заработало нормально.

Сессия работает нормально, когда я пытаюсь получить доступ из браузера chrome / firefox с клиентом phonegap windows, но он не работает, если я установил приложение на устройство Android / ios.

1 Ответ

1 голос
/ 07 января 2020

Решение 1:

В web.config добавьте линию раздувания под system.web

<sessionState cookieSameSite="None" />

Ссылка:

https://support.microsoft.com/en-us/help/4524420/kb4524420

ASP. NET теперь будет генерировать заголовок CookSameSite ie при значении HttpCook ie .SameSite "Нет" чтобы приспособить предстоящие изменения к SameSite cook ie обработка в Chrome. В рамках этого изменения файлы cookie FormsAuth и SessionState также будут выдаваться с SameSite = 'Lax' вместо предыдущего значения по умолчанию 'Нет', хотя эти значения могут быть переопределены в web.config.

Найден ответ от https://forums.asp.net/t/2161961.aspx?Problem+with+Session+in+iFrame+after+recent+windows+update

Решение 2:

В файле web.config добавьте следующую строку под system.webServer

<rewrite>
    <outboundRules>
      <rule name="AddSameSiteCookieFlag">
        <match serverVariable="RESPONSE_Set-Cookie" pattern="((.*)(ASP.NET_SessionId)(=.*))(SameSite=Lax)" />
        <action type="Rewrite" value="{R:1};SameSite=None" />
      </rule>
    </outboundRules>
  </rewrite>

Ответ найден от { ссылка }

Для Chrome больше 80

 <rewrite>
    <outboundRules>
      <rule name="AddSameSiteCookieFlag">
        <match serverVariable="RESPONSE_Set-Cookie" pattern="((.*)(ASP.NET_SessionId)(=.*))(SameSite=Lax)" />
        <action type="Rewrite" value="{R:1};SameSite=" />
      </rule>
    </outboundRules>
</rewrite>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...