web-dev-qa-db-fra.com

Stockage de plusieurs valeurs dans les cookies

J'ai un très grand site Web qui utilise beaucoup de cookies. Il y a env. 14 cookies différents sont là. J'ai des cookies différents pour chaque article. Lorsqu'un utilisateur surfe sur le site, il aura 14 cookies dans son navigateur. Je ne veux pas ça.

Je veux un cookie unique pour mon site qui contiendra 14 éléments et je peux les ajouter, les modifier et les supprimer. J'ai essayé de nombreuses façons, mais je ne suis pas en mesure de le faire.

Je dois mettre des cookies d'exécution et enregistrer le nom d'utilisateur dans le cookie. Une fois que l'utilisateur s'est connecté, je souhaite y enregistrer son adresse de site personnelle. Finalement, je veux à la fois le nom d'utilisateur et l'adresse du site personnel. Je veux enregistrer le nom d'utilisateur avant, puis lorsque l'utilisateur accède à son site personnel, je stocke le temps d'exécution du nom du site personnel.

Quelqu'un at-il une idée de comment je pourrais faire cela?

30
Jalpesh Vadgama

Matthew m'a battu, mais oui, voir le Présentation des cookies ASP.NET ...

Pour écrire et lire un seul cookie avec plusieurs clés/valeurs, cela ressemblerait à ceci:

HttpCookie cookie = new HttpCookie("mybigcookie");
cookie.Values.Add("name", name);
cookie.Values.Add("address", address);

//get the values out
string name = Request.Cookies["mybigcookie"]["name"];
string address = Request.Cookies["mybigcookie"]["address"];
49
Kurt Schindler

Il y a une section dans Présentation des cookies ASP.NET qui explique comment implémenter plusieurs paires nom-valeur (appelées sous-clés) dans un seul cookie. Je pense que c'est ce que vous voulez dire.

L'exemple de cette page, en C #:

Response.Cookies["userInfo"]["userName"] = "patrick"; //userInfo is the cookie, userName is the subkey
Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString(); //now lastVisit is the subkey
Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);

HttpCookie aCookie = new HttpCookie("userInfo");
aCookie.Values["userName"] = "patrick";
aCookie.Values["lastVisit"] = DateTime.Now.ToString();
aCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(aCookie);

EDIT: De la vue d'ensemble des cookies (souligné par nous):

Modification et suppression des cookies: Vous ne pouvez pas modifier directement un cookie . Au lieu de cela, la modification d'un cookie consiste à créer un nouveau cookie avec de nouvelles valeurs, puis à envoyer le cookie au navigateur pour écraser l'ancienne version sur le client.

15
Matthew Jones

Modification et suppression des cookies: vous ne pouvez pas modifier directement un cookie. Au lieu de cela, la modification d'un cookie consiste à créer un nouveau cookie avec de nouvelles valeurs, puis à envoyer le cookie au navigateur pour écraser l'ancienne version sur le client.

2
user2362017