Как исключить атрибут SameSite в. NET 4.5.2 веб-приложении - PullRequest
0 голосов
/ 21 января 2020

У меня есть веб-приложение. NET 4.5.2, в котором мне нужно пройти проверку подлинности ie в межсайтовом контексте. Я устанавливаю SameSite = Нет, добавляя его в Путь

FormsAuthentication.SetAuthCookie(myUser, false, $"{FormsAuthentication.FormsCookiePath}; SameSite=None; Secure");,

Некоторые браузеры несовместимы с SameSite = Нет (https://www.chromium.org/updates/same-site/incompatible-clients), и поэтому я должен исключить его для поддержки этих браузеров:

FormsAuthentication.SetAuthCookie(myUser, false, FormsAuthentication.FormsCookiePath);

В обоих случаях. NET добавляет SameSite = "Lax" к повару ie, так что в первом случае заголовок Set-Cook ie выглядит следующим образом:

AC7.AUTH=ABC; path=/; SameSite=None; secure; HttpOnly; SameSite=Lax

А во втором случае:

AC7.AUTH=ABC; path=/; HttpOnly; SameSite=Lax

Похоже, это было введено, когда мы установили обновление безопасности KB4530689 от Microsoft. Мы удалили это обновление, и оно вернулось назад, чтобы не добавлять «SameSite = Lax» ко всем файлам cookie. Я не уверен, как решить эту проблему в долгосрочной перспективе, если Microsoft предполагала такое поведение с более старыми версиями. NET, или если есть другое решение, которое я просто не вижу. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 16 марта 2020

Я тоже боролся с этим. См. https://docs.microsoft.com/en-us/aspnet/samesite/system-web-samesite Мы используем iframe, поэтому возможное решение заключается в использовании изменения web.config ... <forms cookieSameSite="None" />

...