Question

Je suis intéressé par la transformation d'un objet HttpCookie dans un cookie qui expire à la fin d'une session. Je ne suis pas intéressé par quelqu'un qui me montre HttpContext.Session . Comment un cookie de session apparaît-il dans les en-têtes de réponse par rapport à un cookie normal? Comment modifier un HttpCookie pour qu'il expire à la fin d'une session? Merci!

Était-ce utile?

La solution

Un cookie de session est simplement un cookie pour lequel aucune date d'expiration n'est définie.

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

ou:

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

Autres conseils

Un cookie dont l'expiration est DateTime.MinValue (1/1/0001) expirera à la fin de la session. Il s’agit de la date d’expiration par défaut pour un cookie dans asp.net.

Vous pouvez forcer la suppression immédiate d'un cookie du client en définissant la date d'expiration sur quelque chose avant "maintenant". (DateTime.Now.AddDays (-1d)), auquel cas il sera supprimé lorsqu'il atteindra le client.

Si nous avions des types nullables lorsque HttpCookie était codé, je suppose qu'une date nulle équivaudrait à un cookie basé sur une session et que tout le reste se traduirait par une valeur d'expiration, mais ce n'est pas le cas.

Expiration du cookie:

  • Cookie de session - La date d'expiration doit être DateTime.MinValue qui est 1/1/0001 00:00:00
  • Cookie normal (limité dans le temps) - La date d'expiration est toute date future égale ou supérieure à la dateTime actuelle.
  • Cookie supprimé - à tout moment entre DateTime.MinValue et DateTime.Now.

Pour transformer le cookie en cookie de session, assignez simplement MinValue.

httpCookie.Expires = DateTime.MinValue;

Si votre cookie est nouveau. La valeur par défaut de DateTime doit être DateTime.MinValue et aucun besoin de la définir.

CallMeLaNN

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top