2011-01-14 12 views
47

Ci sono problemi con l'invio di un cookie durante un reindirizzamento 302? Ad esempio, se creo un cookie return-to-url e reindirizzo l'utente nella stessa risposta, qualsiasi browser (moderno) ignorerà il cookie?Invio di cookie del browser durante un reindirizzamento 302

+0

Leggendo un po ', sto pensando che le variabili di sessione sarebbero migliori dei cookie poiché sono lato server e non dipendono dalla prevedibilità del client. – ADTC

risposta

20

La maggior parte dei browser accetta i cookie nei 302 reindirizzamenti. Ne ero abbastanza sicuro, ma ho fatto una piccola ricerca. Non tutti i moderni browser. Internet archive Link from a now removed/dead/ microsoft connect Q/A on Silverlight Client HTTP Stack ignores Set-Cookie on 302 Redirect Responses (2010)

Penso che ora abbiamo un sostituto per IE6 ed è browser Windows Mobile ...

+1

La pagina di forum specificato non può essere accessibile con l'URL. Intendi che IE6 e i browser Windows Mobile non lo sono? Il collegamento – hiroshi

+1

è stato spostato. Ho impostato un nuovo collegamento con lo stesso contenuto. e volevo dire le versioni specifiche di IE per cellulari aggiungere il proprio set di bug – regilero

10

Here è il bug Chromium per questo problema (Set-cookie ignorato per risposta HTTP con stato 302).

+0

Stato: WONTFIX - bug permanente – Slawa

11

One preavviso (per salvare la vita dello sviluppatore):

IE ed Edge stanno ignorando set-cookie nella risposta di reindirizzamento quando il dominio del cookie è localhost.

Soluzione:

Usa 127.0.0.1 invece di localhost.

+4

IE e bordo potrebbero essere "fisso", questo in modo da non impostare i cookie per 127.0.0.1 sia. Doh! E si chiedono perché gli sviluppatori non tutti amano IE ... La tua risposta ancora conclusa circa 4 ore di head-graffi per me. Grazie! – GlenPeterson

0

Nel mio caso ho impostato CookieOptions.Secure = true, ma l'ho verificato su http://localhost. E il browser nasconde i cookie in base all'impostazione.

Per evitare tale problema, è possibile rendere biscotto opzione sicura per abbinare Request.IsHttps di protocollo, per es.

new CookieOptions() 
       { 
        Path = "/", 
        HttpOnly = true, 
        Secure = Request.IsHttps, 
        Expires = expires 
       } 
Problemi correlati