O IE11 não envia cookie de sessão quando um link direcionado a uma nova guia é clicado (na primeira solicitação)

StackOverflow https://stackoverflow.com//questions/21031602

Pergunta

Estou tendo problemas para manter a sessão ao abrir uma nova guia inicial (target _blank) do IE11.

Quando fecho todas as instâncias do IE11 e abro um novo navegador e navego até a página de teste (default.aspx), a página armazena um valor na sessão e exibe o ID da sessão na página.Se eu atualizar a página, o ID da sessão permanecerá o mesmo.A página possui um link para si mesma (default.aspx) com destino _blank.Se eu clicar neste link, uma nova aba será aberta, mas o ID da sessão será diferente.Se eu atualizar a janela original, o ID da sessão agora corresponderá à nova janela.

<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
<% Session["StoredValue"]="Test"; %>

<div>SessionID: <%=Session.SessionID%></div>

<a href="/default.aspx" target="_blank">New Window</a>
<a href="http://www.google.com" target="_blank">3rd Party Window</a>

</body>
</html>

Parece que esse problema ocorre apenas na primeira janela do mesmo domínio aberta em uma nova guia (verifiquei o problema com target="_blank" e segurando CTRL enquanto clicava no link).

  • Quando assisto ao tráfego de biscoitos com Fiddler, posso ver que o cookie da sessão é enviado normalmente na solicitação inicial do padrão.aspx.Quando clico no link para abrir a página em uma nova guia, o cookie da sessão não está sendo enviado nos cabeçalhos da solicitação.
  • Se eu reiniciar o navegador, vá para a página de teste, abra uma nova guia manualmente e cole o destino do link nele, o cookie é enviado corretamente nos cabeçalhos de solicitação e a sessão da nova guia corresponde à guia original conforme o esperado.
  • Se eu reiniciar o navegador, vá para a página de teste, abra o Google a partir de um link direcionando _bank na página de teste e clique no link Abrindo a página de teste em uma nova guia O cookie também é enviado corretamente nos cabeçalhos da solicitação e na sessão Da nova janela corresponde à janela original como esperado.

Acredito que seja um problema do lado do cliente, mas o site está sendo executado no Windows Server Standard 2008 R2 SP 1 em um site integrado 4.0 com .NET 4.51 instalado (também tentei com apenas 4.5 instalado).

O cliente é o Windows 7 de 64 bits executando o IE11 (11.0.9600.16476).Verifiquei o problema em outras máquinas que executam o Windows 7 do IE11 e confirmei que não é um problema no IE10 do Windows 8 no modo desktop.Tudo funciona conforme o esperado no Chrome e no Firefox.

Verifiquei que o problema persiste mesmo se eu:

  • Mova a segurança de Média Alta para Média
  • Desativar modo protegido
  • Altere a privacidade para aceitar todos os cookies
  • Adicione o site à lista de sites da zona Intranet local ou Sites confiáveis
  • Defina uma política de privacidade compacta P3P nos cabeçalhos de resposta, informando que nenhuma informação é coletada ou usada.
  • Defina uma política de privacidade compacta P3P nos cabeçalhos de resposta que normalmente seria aceita para permitir cookies de terceiros em um iframe em versões anteriores do IE.
  • Altere as configurações de estado da sessão ASP.NET do site para cookieless="UseCookies" ou "false" ou remova o atributo completamente (ASP.NET State Server).

Alguma ideia?Alguém mais viu esse problema ou algo semelhante?

Foi útil?

Solução

Este é um bug ativo de acordo com a Microsoft.Aparentemente, não há maneira do servidor de corrigir isso.

Link para relatório de bug

Outras dicas

Não é uma solução, mas uma pista:Notamos um comportamento semelhante e o rastreamos em solicitações para root/browserconfig.xml, fazendo com que o usuário não fosse autenticado.O servidor enviou um novo cookie de sessão porque o Windows não estava enviando o existente.As solicitações subsequentes enviaram o novo valor do cookie de sessão.Mudamos nosso servidor para procurar essa solicitação e não definir cookies de resposta.

Esta não é uma solução, mas:

Tentar clique com o meio em vez disso.Se isso funciona para você 100% das vezes (funcionou para mim)

js: links with target='_blank' on ie remove defaultBehaviour and trigger middle click.

Problema resolvido.

O mesmo problema ocorre com meu login, mas tentamos resolvê-lo alterando algumas configurações no IE11 ou em outros navegadores problemáticos.

Goto Tools => Opções da Internet => Privacidade Clique no botão Sites.Adicione mydomain.com e clique no botão Permitir.Reinicie seu navegador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top