Pregunta

Estoy interesado en cómo hacer un objeto HttpCookie normal en una cookie que caduca al final de una sesión. No estoy interesado en que alguien me muestre HttpContext.Session . ¿Cómo se ve una cookie de sesión en los encabezados de respuesta en comparación con una cookie normal? ¿Cómo puedo modificar una HttpCookie para que caduque al final de una sesión? Gracias!

¿Fue útil?

Solución

Una cookie de sesión es solo una cookie que no tiene una fecha de vencimiento establecida.

Response.Cookies.Add(new HttpCookie("name", "value"));

o:

Response.Cookies["name"] = "value";

Otros consejos

Una cookie con una fecha de vencimiento de DateTime.MinValue (1/1/0001) caducará al final de la sesión. Esta es la fecha de vencimiento predeterminada para una cookie en asp.net.

Puede forzar la eliminación inmediata de una cookie del cliente estableciendo la fecha de vencimiento en algo antes de " ahora " (DateTime.Now.AddDays (-1d)) en cuyo caso se eliminará cuando llegue al cliente.

Si tuviéramos tipos anulables cuando HttpCookie fue codificado, supongo que una fecha nula equivaldría a una cookie basada en sesión y cualquier otra cosa se traduciría en el valor de vencimiento, pero este no es el caso.

Vencimiento de la cookie:

  • Cookie de sesión: la fecha de caducidad debe ser DateTime.MinValue, que es 1/1/0001 00:00:00
  • Cookie normal (tiempo limitado): la fecha de caducidad es cualquier fecha futura igual o mayor que la fecha y hora actual. Ahora.
  • Cookie eliminada: en cualquier momento entre DateTime.MinValue y DateTime.Now.

Para cambiar la cookie en cookie de sesión, simplemente asigne MinValue.

httpCookie.Expires = DateTime.MinValue;

Si su cookie es nueva. El valor predeterminado para DateTime debe ser DateTime.MinValue y no es necesario establecerlo.

CallMeLaNN

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top