2009-11-24 14 views
6

El siguiente código envía una cookie al usuario como parte de la respuesta:¿Cómo asigno una cookie no persistente (en memoria) en ASP.NET?

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

La cookie es del tipo persistente, lo que la mayoría de los navegadores se escribe en el disco y se utiliza en todas las sesiones. Es decir, la cookie está todavía en la PC del cliente mañana, incluso si el navegador y la PC se han cerrado en el medio. Después de una semana, la cookie se eliminará (debido a la línea 2).

Las cookies no persistentes/en memoria son otro pan de cookies, que tienen una vida útil determinada por la duración de la sesión de navegación del cliente. Por lo general, dichas cookies se guardan en la memoria y se descartan cuando se cierra el navegador.

¿Cómo asigno una cookie en memoria de ASP.NET?

Respuesta

11

Simplemente omita la fecha de caducidad. Al no establecer un valor, la cookie se descartará automáticamente después de que termine la sesión.

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

Esto no es ni siquiera ASP.NET específica. Las cookies no persistentes son, por definición, las que no tienen fecha de caducidad. :) – bzlm

+0

De hecho, sospeché que esta era la respuesta, pero algunas búsquedas rápidas en Google y SO no arrojaron fuentes creíbles. ¡Al menos ahora está documentado aquí! @bzlm: gracias por la información de bonificación, no sabía eso :) –

+1

Entonces, la versión abreviada 'Response.Cookies [" theAnswer "]. Value =" 42 "' también daría como resultado una cookie no persistente, ¿no? –

3

Si no especifica la expiración en absoluto, hace el tipo de cookie que está solicitando.

0

asignar DateTime.MinValue a la expiración también hace el truco ...

Cuestiones relacionadas