.net HttpCookie preguntas sobre cookies de clase / sesión
-
08-07-2019 - |
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!
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