Comment créer un cookie persistant vs Un cookie non persistant?

Je n'arrive pas à comprendre comment créer un cookie persistant vs Un cookie non persistant. En quoi diffèrent-ils, disons, dans les en-têtes HTTP renvoyés?

50
demandé sur Chung Wu 2010-10-06 09:57:55

3 réponses

Les Cookies ont une date d'expiration définie implicitement ou explicitement qui contrôle leur durée (sous réserve de l'application effective par l'agent utilisateur). Un cookie ne peut persister que pendant la durée de la session (ou une période encore plus courte).

Si un cookie est valide, il sera transmis avec la requête HTTP au domaine d'où il provient. Seul le domaine qui a défini le cookie peut lire le cookie (bien qu'il existe des moyens d'exploiter cela, tels que cross-site le script).

  • Si vous souhaitez qu'un cookie expire à un moment précis, définissez une expiration date à ce sujet en utilisant la langue côté client ou serveur de votre choix.

  • Si vous souhaitez que le cookie expire à la fin de la session, Ne définissez pas péremption.

De la RFC (emphase mine):

Le créateur de cookies peut spécifier un date de suppression, auquel cas le cookie sera supprimé à cette date.

Si le cookie setter ne spécifie pas un jour, le cookie est supprimé une fois l' utilisateur ferme son navigateur.

Par conséquent, spécifier une date est un moyen pour faire survivre un cookie à travers session. pour cette raison, les cookies avec une date d'expiration sont appelés persistant.

Comme exemple d'application, un site commercial peut utiliser persistant cookies pour stocker les éléments que les utilisateurs ont placé dans leur panier. (Dans la réalité, le cookie peut faire référence à une entrée dans un base de données stockée sur le site d'achat, pas sur votre ordinateur. De cette manière, si les utilisateurs quittent leur navigateur sans faire un achat et revenir plus tard, ils trouvent toujours les mêmes articles dans le panier afin qu'ils ne doivent pas chercher ces articles à nouveau. Si ces cookies n'ont pas donné une date d'expiration, ils expireraient lorsque le navigateur est fermé, et les informations sur le le contenu du panier serait perdu.

67
répondu Tim Medora 2014-03-06 18:32:20

Il y a deux types de cookies dans ASP.NET

Les cookies Persistants:

Les Cookies sont stockés sur le disque dur de votre ordinateur. Ils restent sur votre disque dur et sont accessibles par les serveurs web jusqu'à ce qu'ils soient supprimés ou ont expiré.

public void SetPersistentCookies(string name, string value)
{
    HttpCookie cookie = new HttpCookie(name);

    cookie.Value = value;

    cookie.Expires = Convert.ToDateTime(“12/12/2008″);

    Response.Cookies.Add(cookie);
}

Cookies non persistants:

Les Cookies ne sont enregistrés que lorsque votre navigateur web est en cours d'exécution. Ils peuvent être utilisés par un serveur web jusqu'à ce que vous fermez votre navigateur. Ils ne sont pas enregistrés sur votre disque.

public void SetNonPersistentCookies(string name, string value)
{
    HttpCookie cookie = new HttpCookie(name);

    cookie.Value = value;

    Response.Cookies.Add(cookie);
}
9
répondu Deepak.Aggrawal 2017-10-18 07:34:49

Cookie de Session

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
Response.Cookies.Add(cookie);

Cookie avec un certain horodatage (. net DateTime library )

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.Today.AddMonths(12); //or AddMinutes, or AddHours...
Response.Cookies.Add(cookie);

Cookie Persistant

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.MaxValue;
Response.Cookies.Add(cookie);
5
répondu expertCode 2013-10-07 08:43:04