2009-11-24 7 views
6

Il seguente codice invierà un cookie per l'utente come parte della risposta:Come si assegna un cookie non persistente (in memoria) in ASP.NET?

var cookie = new HttpCookie("theAnswer", "42"); 
cookie.Expires = DateTime.Now.AddDays(7); 
Response.Cookies.Add(cookie); 

Il cookie è di tipo persistente, che per la maggior parte dei browser sarà scritto su disco e utilizzato tra le sessioni. Cioè, il cookie è ancora sul PC del cliente domani, anche se il browser e il PC sono stati chiusi in mezzo. Dopo una settimana, il cookie verrà eliminato (a causa della riga 2).

I cookie non persistenti/in memoria sono un altro pane di cookie, che hanno una durata determinata dalla durata della sessione di navigazione del client. Solitamente, tali cookie sono conservati in memoria e vengono scartati quando il browser viene chiuso.

Come si assegna un cookie in memoria da ASP.NET?

risposta

11

Basta omettere la data di scadenza. Non impostando un valore, il cookie verrà automaticamente scartato dopo la fine della sessione.

var cookie = new HttpCookie("theAnswer", "42"); 
Response.Cookies.Add(cookie); 
+3

Questo non è nemmeno specifico ASP.NET. I cookie non persistenti sono, per definizione, quelli senza una data di scadenza. :) – bzlm

+0

In realtà sospettavo che questa fosse la risposta, ma alcune ricerche veloci su Google e SO non hanno rivelato fonti attendibili. Almeno ora è documentato qui! @bzlm: grazie per le informazioni sui bonus, non lo sapevo :) –

+1

Quindi, la versione abbreviata 'Response.Cookies [" theAnswer "]. Value =" 42 "' genererebbe anche un cookie non persistente, giusto? –

3

Se non si specifica la scadenza, quindi rende il tipo di cookie che si richiede.

0

l'assegnazione di DateTime.MinValue alla scadenza fa anche il trucco ...

Problemi correlati