2010-07-02 6 views
0

je veux ajouter 3 clé de série du système client à l'aide HttpCookie quand il a visité mon site mon site hors cours dans asp.net MVCcomment ajouter la clé de série au système client quand il visitez notre site Web

mais

la clé de série est différente différente pas même. Lorsque j'ajoute un 4e cookie, 1 clé est automatiquement supprimée.

comment je peux le faire.

lorsque l'utilisateur veut voir alors il peut voir 3 clé récente. Savez-vous comment ajouter ce cookie au système client par le site Internet asp.net mvc? Comment je peux ajouter key1, key 2, key3 au système client.

Répondre

1

Voici comment vous pouvez le faire.

Ecriture des touches série.

//create a cookie 
HttpCookie SerialKeys = new HttpCookie("SerialKeys"); 

//Add serial-key-values in the cookie 
SerialKeys.Values.Add("key1", "your-first-serialkey"); 
SerialKeys.Values.Add("key2", "your-second-serialkey"); 
SerialKeys.Values.Add("key3", "your-third-serialkey"); 
SerialKeys.Values.Add("key4", "your-fourth-serialkey"); 

//set cookie expiry date-time. Made it to last for next 12 hours. 
SerialKeys.Expires = DateTime.Now.AddHours(12); 

//Most important, write the cookie to client. 
Response.Cookies.Add(SerialKeys); 

Lire le cookie série-clé.

//Assuming user comes back after several hours. several < 12. 
//Read the cookie from Request. 
HttpCookie SerialKeys = Request.Cookies["SerialKeys"]; 
if (SerialKeys == null) 
{ 
    //No cookie found or cookie expired. 
    //Handle the situation here, Redirect the user or simply return; 
} 

//ok - cookie is found. 
//Gracefully check if the cookie has the key-value as expected. 
if (!string.IsNullOrEmpty(SerialKeys.Values["key1"])) 
{ 
    string serialKey = SerialKeys.Values["key1"].ToString(); 
    //Yes key1 is found. Mission accomplished. 
} 

if (!string.IsNullOrEmpty(SerialKeys.Values["key2"])) 
{ 
    string serialKey = SerialKeys.Values["key2"].ToString(); 
    //Yes key2 is found. Mission accomplished. 
} 
0

Vous pouvez ajouter des cookies à l'utilisateur lorsqu'un utilisateur démarre une session. Cela peut être fait en gérant le début de la session, même dans le fichier global.asax de votre application, en ajoutant le code logique pour créer ces clés.

void Session_OnStart() { 
    HttpCookie key1 = new HttpCookie("key1","123"); 
    Request.Cookies.Add(key1); 
} 

Alors, pour la 4ème chose cookie votre parlaient, vous pouvez créer votre logique de code en faisant référence aux cookies utilisateurs en utilisant Response.Cookies["cookie"] ou supprimer un à l'aide Request.Cookies.Remove("cookie");

0

Toutes les limites du navigateur d'une manière ou d'une autre le montant des cookies qu'un certain site Web peut stocker. Si, par exemple, votre navigateur accepte n cookies, lorsque vous envoyez le n + 1 le navigateur supprimera votre plus ancien. Il me semble que c'est ce qui se passe.

Une solution possible consiste à utiliser un cookie avec diverses sous-valeurs au lieu d'une seule. De cette façon, vous pouvez avoir dans un cookie autant de valeurs que vous le souhaitez (soumis toujours à la limite de taille maximale des cookies qui est de 4086 octets).

Le code pour le faire serait quelque chose comme:

//This code creates the cookie, ads some subvalues to it and then adds it to the request so its sent to the browser 
HttpCookie cookie = new HttpCookie(); 
cookie.Name = "MyKeys";    
cookie.Values.Add("Key1", "ValueKey1"); 
cookie.Values.Add("Key2", "ValueKey2"); 
cookie.Values.Add("Key3", "ValueKey3"); 
//etc... 

Request.Cookies.Add(cookie); 

//This code reads the data from the cookie. 
HttpCookie rcookie = Response.Cookies.Get("MyKeys"); 
string value1, value2, value3; 
//We verify it the variable is null because the cookie might not exist in the users browser. If so, this variable would be null 
if (rcookie != null) 
{ 
    value1 = rcookie.Values.Get("Key1"); 
    value2 = rcookie.Values.Get("Key2"); 
    value3 = rcookie.Values.Get("Key3"); 
} 
Questions connexes