2009-07-23 28 views
26

J'ai un très grand site web qui utilise beaucoup de cookies. Il y a environ. 14 cookies différents sont là. J'ai différents cookies pour chaque article. Quand un utilisateur surfe sur le site, il aura 14 cookies dans son navigateur. Je ne veux pas ça.Stockage de plusieurs valeurs dans les cookies

Je veux un seul cookie pour mon site qui aura 14 éléments et je peux les ajouter, les modifier et les supprimer. J'ai essayé plusieurs façons mais je ne suis pas capable de faire ça.

J'ai besoin de mettre quelques cookies d'exécution ainsi enregistrer le nom d'utilisateur dans le cookie. Une fois l'utilisateur connecté, je souhaite y enregistrer son adresse personnelle. Finalement, je veux à la fois le nom d'utilisateur et l'adresse du site personnel à la fois. Je veux enregistrer le nom d'utilisateur avant, puis quand l'utilisateur va sur son site personnel, je vais stocker le temps d'exécution du nom de site personnel.

Est-ce que quelqu'un a une idée de comment je pourrais faire cela?

Répondre

43

Matthew m'a battu à, mais oui, voir le ASP.NET Cookies Overview ...

lire et à écrire un seul cookie avec plusieurs clés/valeurs, il ressemblerait à quelque chose comme 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"]; 
+0

encore vous stockez en même temps.nom et adresse comme je l'ai fait après HttpCookie cookie = new HttpCookie ("mybigcookie"); cookie.Values.Add ("nom", nom); et puis quand l'utilisateur utilise son site personnel, je veux faire cookie.Values.Add ("adresse", adresse); C'est possible? –

+1

@Jalpesh: réponse courte est non, vérifiez mon édition. –

+0

Quelle est la syntaxe équivalente de javascript? – JNappi

15

Il existe une section dans le ASP.NET Cookies Overview 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 tu veux 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 Cookies Vue d'ensemble (nous soulignons):

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

+0

En ce qu'ils stockent cookie en même temps comme nom d'utilisateur et site personnel, puis l'ajouter à cookie alors que dans mon cas c'est quelque chose comme j'ai déjà enregistré le nom d'utilisateur dans cookie et puis je ajouter un autre . Y a-t-il des moyens de le faire? –

2

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

Questions connexes