Recentemente samesite = lax adiciona automaticamente ao meu cookie de sessão! esse atributo basta adicionar ao sessionID:
"Set-Cookie ASP.NET_SessionId=zana3mklplqwewhwvika2125; path=/; HttpOnly; **SameSite=Lax**"
Meu site hospedado no IIS 8.5, Windows 2012 R2 e não possui WAF ou UrlRewrite e desativo o AntiVirus (kasper).
mas ainda tem o mesmo problema em alguns servidores do cliente.
qualquer ideia?
EDITADO: Encontre o seguinte: https://support.microsoft.com/en-us/help/4524419/kb4524419
Agora, o ASP.NET emitirá um cabeçalho de cookie SameSite quando o valor HttpCookie.SameSite for 'None' para acomodar as próximas alterações na manipulação de cookies SameSite no Chrome. Como parte dessa alteração, os cookies FormsAuth e SessionState também serão emitidos com SameSite = 'Lax' em vez do padrão anterior de 'None', embora esses valores possam ser substituídos no web.config.
Como substituir os cookies do mesmo site para o SessionState no web.config? eu adiciono esta linha, mas não funciona no cookie SessionID!
<httpCookies sameSite="Unspecified" />
Defina samesite para stateserver pelo atributo "cookieSameSite" da tag SessionState.
Respostas:
Adicione essas opções ao web.config para sameSite = None, Lax ou Strict
fonte
<httpCookies sameSite
não é mostrado como uma opção válida no .Net Framework 4.8Não consigo reescrever, porque o UrlRewrite não está instalado em todos os servidores de meus clientes.
Finalmente eu adiciono cookieSameSite ao meu web.config:
fonte
cookieSameSite
funcionalidade ao web.config - o .NET 4.7.2 faz. O link que eu publiquei no meu comentário também está vinculado na página a que você se refere.O atributo CookieSameSite não está disponível para muitas estruturas mais antigas. Se você estiver na situação em que a resposta aceita não é suportada em seu ambiente, continue lendo!
Eu modifiquei várias respostas do SO para criar essa reescrita de URL que adiciona
SameSite=None
aos cookies de sessão e também removerSameSite=None
de todas cookies da maioria dos navegadores incompatíveis. O objetivo dessa reescrita é preservar o comportamento "legado" anterior ao Chrome 80.Artigo completo no meu blog Coder Frontline :
Isso deve funcionar para a maioria dos aplicativos ASP .Net e ASP .Net Core, embora as Estruturas mais recentes possuam código e opções de configuração adequadas para permitir que você controle esse comportamento. Eu recomendaria pesquisar todas as opções disponíveis antes de usar minha reescrita acima.
fonte
<system.net></system.net>
?<system.webServer>
SameSite=Lax
isso, ele será anexado apenasSameSite=None
e não será substituído.(SameSite=.*)?
o padrão está em tudo?SameSite=Lax
cabeçalho:((.*)(ASP.NET_SessionId)(=.*))(?=SameSite)
consulte regex101.com/r/7D9UdO/3 atualizado - no entanto, observe que esse regex excluirá tudo o que desejar posteriormente, como o cabeçalho seguro. Essa deve ser uma condição rara, portanto, o ponto principal é ver o que o seu aplicativo OS + framework + está emitindo e escrever a regex conforme a sua necessidade. Vou atualizar minha resposta para refletir os dois lados :)Última atualização: resposta de zemien é mais abrangente e completa que a minha. porque define o cookie com base no agente do usuário.
Minha resposta:
Você pode substituir SameSite = Lax por SameSite = None para ASP.NET_SessionId no web.config da seguinte maneira:
Atualização: Para evitar problemas no IOS , substitua
com
fonte
@zemien sua solução resolveu corretamente nossos problemas do google chrome
Temos uma integração em que nosso aplicativo é incorporado em um iframe de terceiros. A versão 80 do Chrome, lançada em 4 de fevereiro de 2020, impedia o carregamento de cookies.
No entanto, tive que modificar o padrão para capturar todos os cookies, adicionar o sinalizador Seguro e condição para não aplicar a reescrita no host local para o nosso ambiente local não https
fonte
Funciona para mim. Adicionado ao meu arquivo web.config:
Atualize para o patch de instalação do .Net Framework 4.8 +: atualização cumulativa de 2019-12 para .NET Framework 3.5 e 4.8 para Windows 10 versão 1909 para x64 (KB4533002)
fonte