Frage

ich möchte 3 serielle Schlüssel zum Client-System hinzuzufügen Http zu verwenden, wenn er meine Website besucht meine Website vom Kurs in asp.net MVC

und

serial key ist anders anders nicht gleich.

wenn ich ein viertes Cookie dann 1 Schlüssel hinzufügen, wird automatisch gelöscht.

Wie kann ich dies tun.

, wenn der Benutzer sehen will, dann kann er die letzten 3 Schlüssel sehen.

Sind Sie wissen, wie dieses Cookie auf Client-System hinzufügen, indem asp.net Mvc-Website.

, wie ich key1, Taste 2, key3 zu Client-System hinzufügen kann.

War es hilfreich?

Lösung

Hier ist, wie können Sie das tun.

Das Schreiben der seriellen-Tasten.

//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);

Lesen Sie die Serien-key-Cookie.

//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.
}

Andere Tipps

Sie können hinzufügen Cookies an den Benutzer, wenn ein Benutzer eine Sitzung beginnt. Dies kann durch die Handhabung der Sitzung startet auch in der global.asax-Datei Ihrer Anwendung des Hinzufügen in dem Logik-Code für die Erstellung dieser Tasten erfolgen.

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

Dann ist für das vierte Cookie, was Ihr über Sie gesprochen haben Ihren Code Logik Cookies durch Bezugnahme auf die Benutzer erstellen können Response.Cookies["cookie"] durch die Verwendung oder entfernen Sie eine Request.Cookies.Remove("cookie");

mit

Alle Browser Grenze in eine oder andere Weise die Menge von Cookies eine bestimmte Website speichern. Wenn zum Beispiel Ihr Browser akzeptiert n Cookies zu senden, die, wenn Sie die n + 1 wird der Browser Ihre älteste löschen. Es scheint mir, dass das ist, was los ist.

Eine mögliche Lösung ist ein Cookie mit verschiedenen Teilwerte anstelle eines einzigen zu verwenden. Auf diese Weise können Sie so viele Werte in einem Cookie haben, wie Sie (immer auf die Cookie maximale Größe ausgesetzt, die 4086 Byte) werden sollen.

Der Code zu tun, wäre so etwas wie:

//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");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top