it-swarm.com.de

Wie erstelle ich ein beständiges Cookie im Vergleich zu einem nicht beständigen Cookie?

Ich kann anscheinend nicht herausfinden, wie ein beständiger Cookie im Vergleich zu einem nicht beständigen Cookie erstellt wird. Wie unterscheiden sie sich beispielsweise in den zurückgesendeten HTTP-Headern?

53
Chung Wu

Cookies haben ein implizites oder explizites Ablaufdatum, das steuert, wie lange sie dauern (vorbehaltlich der tatsächlichen Durchsetzung durch das Benutzerprogramm). Ein Cookie bleibt möglicherweise nur für die Dauer der Sitzung (oder für einen noch kürzeren Zeitraum) bestehen.

Wenn ein Cookie gültig ist, wird es zusammen mit der HTTP-Anfrage an die Domain weitergeleitet, von der es stammt. Nur die Domain, die das Cookie gesetzt hat, kann das Cookie lesen (obwohl es Möglichkeiten gibt, dies auszunutzen, wie zum Beispiel Cross-Site-Scripting).

  • Wenn ein Cookie zu einem bestimmten Zeitpunkt ablaufen soll, legen Sie ein Ablaufdatum in der Client- oder Serversprache Ihrer Wahl fest.

  • Wenn das Cookie am Ende der Sitzung ablaufen soll, legen Sie kein Ablaufdatum fest.

Aus dem RFC (Schwerpunkt Mine):

Der Cookie-Setter kann ein Löschdatum festlegen. In diesem Fall wird das Cookie an diesem Datum entfernt.

Wenn der Cookie-Setter kein Datum angibt, wird das Cookie entfernt, sobald der Benutzer seinen Browser beendet.

Das Festlegen eines Datums ist daher eine Möglichkeit, ein Cookie über mehrere Sitzungen hinweg zu erhalten. Aus diesem Grund werden Cookies mit einem Ablaufdatum als dauerhaft bezeichnet.

Als Beispielanwendung kann eine Einkaufswebsite dauerhafte Cookies verwenden, um die Artikel zu speichern, die Benutzer in ihren Warenkorb gelegt haben. (In Wirklichkeit bezieht sich das Cookie möglicherweise auf einen Eintrag in einer Datenbank, die auf der Einkaufsseite und nicht auf Ihrem Computer gespeichert ist.) Auf diese Weise finden Benutzer, die ihren Browser verlassen, ohne einen Kauf zu tätigen und später zurückzukehren, dieselben Artikel in der Korb, so müssen sie nicht erneut nach diesen Artikeln suchen. Wenn diese Cookies kein Ablaufdatum erhalten, verfallen sie beim Schließen des Browsers und die Informationen zum Inhalt des Warenkorbs gehen verloren.

71
Tim Medora

In ASP.NET gibt es zwei Arten von Cookies

Permanente Cookies:

Cookies werden auf Ihrer Computerfestplatte gespeichert. Sie verbleiben auf Ihrer Festplatte und können von Webservern abgerufen werden, bis sie gelöscht werden oder abgelaufen sind.

public void SetPersistentCookies(string name, string value)
{
    HttpCookie cookie = new HttpCookie(name);

    cookie.Value = value;

    cookie.Expires = Convert.ToDateTime(“12/12/2008″);

    Response.Cookies.Add(cookie);
}

Nicht dauerhafte Cookies:

Cookies werden nur gespeichert, während Ihr Webbrowser ausgeführt wird. Sie können nur von einem Webserver verwendet werden, bis Sie Ihren Browser schließen. Sie werden nicht auf Ihrer Festplatte gespeichert.

public void SetNonPersistentCookies(string name, string value)
{
    HttpCookie cookie = new HttpCookie(name);

    cookie.Value = value;

    Response.Cookies.Add(cookie);
}
10
Deepak.Aggrawal

Session-Cookie

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
Response.Cookies.Add(cookie);

Cookie mit einem bestimmten Zeitstempel ( . NET DateTime Bibliothek )

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.Today.AddMonths(12); //or AddMinutes, or AddHours...
Response.Cookies.Add(cookie);

Dauerhaftes Cookie

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.MaxValue;
Response.Cookies.Add(cookie);
6
expertCode