Cookies mit ASP.net (C# 2005)
25 Aug 2008 by retschgi
Heute musste ich mein Wissens über Cookies in ASP.net wiedermal etwas auffrischen. Damit ich es nicht vergesse, schreibe ich es hier nun entgültig auf:
Einfaches Cookie anlegen:
Cookies legt man prinzipiel über das Response-Objekt an. Wichtig ist zu wissen, dass die Daten auf 4 KB beschränkt sind.
Response.Cookies["Testcookie"].Value = "Mein Wert";
Auslesen eines Cookies:
Das Auslesen geht denkbar einfach:
if (Request.Cookies["Testcookie"].Value != null) { string s = Request.Cookies["Testcookie"].Value; }
Ablaufdatum eines Cookies:
Wird nichts angegeben so lebt ein Cookie solange bis der Browser geschlossen wird (unbeschränktes Cookie). Will man eine längere Lebensdauer sicherstellen, so kann man ein Ablaufdatum angeben.
if (Request.Cookies["Testcookie"].Value != null) { Response.Cookies["Testcookie"].Expires = DateTime.Now.AddMonths(2); }
Manuelles Löschen eines Cookies:
Das löschen des Cookies funktioniert so, dass man dem Cookie ein Ablaufdatum gibt, welches in der Vergangeheit liegt.
if (Request.Cookies["Testcookie"].Value != null) { Response.Expires = new DateTime(0); }
Verschachtelte Cookies:
Man kann Cookies erstellen, welche sich wie ein Array verhalten (Dictionary) .
Response.Cookies["bookstore"]["book1"] = "ASP.net 2.0"; Response.Cookies["bookstore"]["book2"] = "JSF 1.2";
Das Resultat sieht anschliessend folgendermassen aus: MehrereInhalte:book1=ASP.net 2.0&book2=JSF 1.2
Definieren eines HTTP-Cookie:
Der Unterschied von einem HTTP-Cookie zu einem normalen Cookie ist, dass das HTTP-Cookie erst beim Absenden der Response hinzugefügt wird. Ein „normales“ Cookie wird hinzugefügt sobald Response.Cookies['…'] aufgeführt wird.
HttpCookie Cookie = new HttpCookie("bookstore"); Cookie.Values.Add("book1", "ASP.net 2.0"); Cookie.Values.Add("book2", "JSF 1.2"); Response.AppendCookie(Cookie);