Недавно samesite = lax автоматически добавляется в мой сеансовый файл cookie! этот атрибут просто добавить к sessionID:
"Set-Cookie ASP.NET_SessionId=zana3mklplqwewhwvika2125; path=/; HttpOnly; **SameSite=Lax**"
Мой сайт размещен на IIS 8.5, Windows 2012 R2 и не имеет WAF или UrlRewrite, и я отключаю Антивирус (каспер).
но все же имеют такую же проблему на некоторых клиентских серверах.
Есть идеи?
Отредактировано: я нахожу это: https://support.microsoft.com/en-us/help/4524419/kb4524419
ASP.NET теперь будет отправлять заголовок cookie SameSite, когда значение HttpCookie.SameSite равно «None» для учета предстоящих изменений в обработке cookie SameSite в Chrome. В рамках этого изменения файлы cookie FormsAuth и SessionState также будут выдаваться с SameSite = 'Lax' вместо предыдущего значения по умолчанию 'Нет', хотя эти значения могут быть переопределены в web.config.
Как я могу переопределить файлы cookie одного и того же сайта для SessionState в web.config? я добавляю эту строку, но она не работает с cookie SessionID!
<httpCookies sameSite="Unspecified" />
РЕДАКТИРОВАНИЕ: Я нахожу это: https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.sessionstatesection.cookiesamesite?view=netframework-4.8#System_Web_Configuration_SessionStateSection_CookieSameSiteSite
Установите тот же сайт для сервера состояний с помощью атрибута «cookieSameSite» тега SessionState.
Ответы:
Добавьте эти параметры в web.config для sameSite = None, Lax или Strict
источник
<httpCookies sameSite
не отображается в качестве допустимого параметра в .Net Framework 4.8Я не могу использовать перезапись, потому что UrlRewrite не установлен на всех серверах моих клиентов.
Наконец я добавляю cookieSameSite в мой web.config:
источник
cookieSameSite
функциональности в web.config - .NET 4.7.2 делает. Ссылка, которую я разместил в своем комментарии, также связана со страницей, на которую вы ссылаетесь.Атрибут CookieSameSite недоступен для многих более старых платформ. Если вы находитесь в ситуации, когда принятый ответ не поддерживается в вашей среде, читайте дальше!
Я изменил несколько ответов SO, чтобы придумать переписывание URL-адреса, которое добавляет
SameSite=None
файлы cookie сеанса, а также удалитьSameSite=None
из всех файлов cookie для большинства несовместимых браузеров. Целью этого переписывания является сохранение «устаревшего» поведения до Chrome 80.Полная информация в моем блоге Coder Frontline :
Это должно работать для большинства приложений ASP .Net и ASP .Net Core, хотя более новые Frameworks имеют надлежащие параметры кода и конфигурации, позволяющие контролировать это поведение. Я бы порекомендовал изучить все варианты, доступные вам, прежде чем использовать мой переписать выше.
источник
<system.net></system.net>
?<system.webServer>
SameSite=Lax
он будет только добавляться,SameSite=None
а не заменять его.(SameSite=.*)?
вообще в шаблоне?SameSite=Lax
заголовка:((.*)(ASP.NET_SessionId)(=.*))(?=SameSite)
см. Обновленное regex101.com/r/7D9UdO/3 - однако обратите внимание, что это регулярное выражение исключит все, что вы захотите впоследствии, например, безопасный заголовок. Это должно быть редким условием, поэтому ключевой момент заключается в том, чтобы увидеть, что излучает ваше приложение OS + framework +, и написать соответствующее регулярное выражение. ЯПоследнее обновление: ответ zemien является более полным и полным, чем мой. потому что он устанавливает cookie на основе пользовательского агента.
Мой ответ:
Вы можете заменить SameSite = Lax на SameSite = None для ASP.NET_SessionId в web.config следующим образом:
Обновление: чтобы предотвратить проблему IOS , замените
с
источник
@zemien ваше решение правильно решило наши проблемы с Google Chrome
У нас есть интеграция, в которой наше приложение встроено в iframe третьей стороны. Версия Chrome 80, выпущенная 4 февраля 2020 года, не позволяет загружать файлы cookie.
Однако мне пришлось изменить шаблон для захвата всех файлов cookie, добавить флаг Secure и условие, чтобы не применять перезапись на localhost для нашей локальной среды, отличной от https.
источник
Работает для меня. Добавлен в мой файл web.config:
Обновление до .Net Framework 4.8 + установочное исправление: 2019-12 Накопительное обновление для .NET Framework 3.5 и 4.8 для Windows 10 Версия 1909 для x64 (KB4533002)
источник