C# Проблема с флагом SameSite - PullRequest
2 голосов
/ 28 января 2020

Поскольку Chrome собирается сделать флаг SameSite=None и Secure обязательным с версии 80 4 февраля, я пытаюсь установить этот flags в моем поваре ie, используя следующие строки: код:

HttpCookie myCookie = new HttpCookie("XYZ");
myCookie.Value = newCookie;
myCookie.SameSite = SameSiteMode.None;
myCookie.Secure = true;
myCookie.Expires = DateTime.Now.AddYears(2);
context.Response.Cookies.Add(myCookie); 

Но эти свойства не работают. Даже после обновления версии. Net Framework до 4.8 этот флаг не устанавливает желаемый SameSite=None для повара ie. Также одна странная проблема, с которой я сталкиваюсь, заключается в том, что, когда я использую следующую строку в web.config, флаг правильно устанавливается в моем cook ie при запросе его с сервера:

<sessionState cookieSameSite="None" />
<httpCookies sameSite="None" requireSSL="true" />

Но когда я сделать ту же конфигурацию и выпустить на другом сервере с балансировкой нагрузки, он не работает.

Кто-нибудь есть какие-либо подсказки о том, как установить эту вещь прямым путем в C#?

Спасибо за вашу помощь заранее

1 Ответ

2 голосов
/ 01 февраля 2020

Необходимо установить накопительное обновление от 10 декабря 2019 (или более поздней версии) для. NET Framework. Найдите на сайте поддержки Microsoft , чтобы найти соответствующее обновление для вашей версии Windows и. NET Framework.

Без обновления ASP. NET будет never добавить атрибут SameSite = None в файлы cookie ответов.

При обновлении ASP. NET добавит атрибут SameSite = None в файлы cookie ответа, если вы явно задали HttpCook ie .SameSite в SameSiteMode.None или если вы установите атрибут <httpCookies sameSite="None"> в Web.config. Обновление также изменяет режим SameSite по умолчанию на Lax для ASP. NET, формирует аутентификацию и сеансовые куки. Чтобы изменить их обратно на None, установите атрибуты <forms cookieSameSite="None"> и <sessionState cookieSameSite="None"> в Web.config.

...