IE11 non invia cookie di sessione quando viene fatto clic su un collegamento indirizzato a una nuova scheda (alla prima richiesta)

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

Domanda

Ho qualche problema a mantenere la sessione quando apro una nuova scheda iniziale (target _blank) da IE11.

Quando chiudo tutte le istanze di IE11, quindi apro un nuovo browser e accedo alla pagina Web di test (default.aspx), la pagina memorizza un valore nella sessione e visualizza l'ID sessione sulla pagina.Se aggiorno la pagina l'ID sessione rimane lo stesso.La pagina ha un collegamento a se stessa (default.aspx) con destinazione _blank.Se faccio clic su questo collegamento viene aperta una nuova scheda, ma l'ID sessione è diverso.Se quindi aggiorno la finestra originale, l'ID sessione ora corrisponde alla nuova finestra.

<%@ 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>

Sembra che questo problema si verifichi solo per la prima finestra sullo stesso dominio aperta in una nuova scheda (ho verificato il problema sia con target="_blank" sia tenendo premuto CTRL mentre si fa clic sul collegamento).

  • Quando guardo il traffico dei cookie con violinista posso vedere che il cookie della sessione viene inviato normalmente nella richiesta iniziale da default.aspx.Quando faccio clic sul collegamento per aprire la pagina in una nuova scheda, il cookie della sessione non viene inviato nelle intestazioni di richiesta.
  • Se riavvio il browser, vai alla pagina di prova, apri una nuova scheda manualmente e incolla la destinazione del collegamento in essa, il cookie viene inviato correttamente nelle intestazioni di richiesta e la sessione dalla nuova scheda corrisponde alla scheda originale come previsto.
  • Se riavvio il browser, vai alla pagina di prova, apri Google da un link destinato a _blank nella pagina di prova, quindi fai clic sul collegamento aprendo la pagina di prova in una nuova scheda Il cookie viene inviato correttamente nelle intestazioni di richiesta e nella sessione Dalla nuova finestra corrisponde alla finestra originale come previsto.

Credo che si tratti di un problema lato client, ma il sito è in esecuzione da Windows Server Standard 2008 R2 SP 1 in un sito Web integrato 4.0 con .NET 4.51 installato (provato anche con solo 4.5 installato).

Il client è Windows 7 a 64 bit con IE11 (11.0.9600.16476).Ho verificato il problema su altre macchine che eseguono Windows 7 da IE11 e ho confermato che non si tratta di un problema in IE10 da Windows 8 in modalità desktop.Tutto funziona come previsto in Chrome e Firefox.

Ho verificato che il problema persiste anche se:

  • Sposta la sicurezza da Medio Alta a Media
  • Disabilita la modalità protetta
  • Modifica la privacy in Accetta tutti i cookie
  • Aggiungere il sito all'elenco dei siti Web della zona Intranet locale o Siti attendibili
  • Imposta una politica sulla privacy compatta P3P nelle intestazioni delle risposte indicando che nessuna informazione viene raccolta o utilizzata.
  • Imposta una politica sulla privacy compatta P3P nelle intestazioni di risposta che verrebbe generalmente accettata per consentire cookie di terze parti all'interno di un iframe nelle versioni precedenti di IE.
  • Modificare le impostazioni dello stato della sessione ASP.NET del sito Web in cookieless="UseCookies" o "false" oppure rimuovere completamente l'attributo (ASP.NET State Server).

Qualche idea?Qualcun altro ha riscontrato questo problema o simili?

È stato utile?

Soluzione

Questo è un bug attivo secondo Microsoft.Apparentemente non esiste un modo lato server per risolvere questo problema.

Collegamento alla segnalazione di bug

Altri suggerimenti

Non una soluzione, ma un indizio:Abbiamo notato un comportamento simile e lo abbiamo rintracciato nelle richieste a root/browserconfig.xml che causavano la mancata autenticazione dell'utente.Il server ha inviato un nuovo cookie di sessione perché Windows non inviava quello esistente.Le richieste successive hanno quindi inviato il nuovo valore del cookie di sessione.Abbiamo cambiato il nostro server per cercare questa richiesta e non impostare cookie di risposta.

Questa non è una soluzione, ma:

Tentativo fare invece clic con il pulsante centrale.Se funziona per te il 100% delle volte (per me ha funzionato)

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

Problema risolto.

Lo stesso problema si verifica con il mio accesso, ma abbiamo provato a risolverlo modificando alcune impostazioni in IE11 o altri browser problematici.

Goto Tools => Internet Options => Privacy Lì fare clic sul pulsante Siti.Aggiungi miodominio.com e fai clic sul pulsante Consenti.Riavvia il browser.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top