TOC

This article has been localized into German by the community.

Zustand:

Cookies

Cookies sind kleine Textteile, die auf dem Computer des Kunden gespeichert werden und nur von der Website verwendet werden, die die Cookies setzt. Auf diese Weise können Webanwendungen Informationen für den Benutzer speichern und bei Bedarf auf jeder Seite erneut verwenden. Hier ist ein Beispiel, in dem wir die Auswahl der Hintergrundfarbe eines Benutzers speichern:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Cookies</title>
</head>
<body runat="server" id="BodyTag">
    <form id="form1" runat="server">
    <asp:DropDownList runat="server" id="ColorSelector" autopostback="true" onselectedindexchanged="ColorSelector_IndexChanged">
        <asp:ListItem value="White" selected="True">Select color...</asp:ListItem>
        <asp:ListItem value="Red">Red</asp:ListItem>
        <asp:ListItem value="Green">Green</asp:ListItem>
        <asp:ListItem value="Blue">Blue</asp:ListItem>
    </asp:DropDownList>
    </form>
</body>
</html>

Die Seite enthält lediglich ein DropDownList-Steuerelement, das bei jeder Auswahl eines neuen Elements automatisch zurückgesendet wird. Es hat 3 verschiedene Farben, außer der Standardfarbe, die einfach weiß ist. Sobald ein neues Element ausgewählt ist, wird die ColorSelector_IndexChanged-Methode aus unserer CodeBehind-Datei ausgelöst:

using System;
using System.Data;
using System.Web;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(Request.Cookies["BackgroundColor"] != null)
        {
            ColorSelector.SelectedValue = Request.Cookies["BackgroundColor"].Value;
            BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
        }
    }

    protected void ColorSelector_IndexChanged(object sender, EventArgs e)
    {
        BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
        HttpCookie cookie = new HttpCookie("BackgroundColor");
        cookie.Value = ColorSelector.SelectedValue;
        cookie.Expires = DateTime.Now.AddHours(1);
        Response.SetCookie(cookie);
    }
}

Okay, zwei verschiedene Teile werden hier erklärt. Zunächst die PageLoad-Methode, die bei jeder Seitenanforderung aufgerufen wird. Hier suchen wir nach einem Cookie, um uns mitzuteilen, welche Hintergrundfarbe verwendet werden soll. Wenn wir es finden, setzen wir den Wert unserer Dropdown-Liste, um dies widerzuspiegeln, sowie die Hintergrundfarbe der Seite, indem wir einfach auf das style-Attribut des body-Tags zugreifen.

Dann haben wir die ColorSelector_IndexChanged-Methode, die jedes Mal aufgerufen wird, wenn der Benutzer eine neue Farbe auswählt. Hier legen wir die Hintergrundfarbe der Seite fest und erstellen dann ein Cookie, um den Wert für uns zu speichern. Wir lassen es nach einer Stunde ablaufen und setzen es dann, indem wir die SetCookie-Methode für das Response-Objekt aufrufen.

Führen Sie das Beispiel aus und legen Sie eine Farbe fest. Schließen Sie nun den Browser und starten Sie ihn erneut. Sie werden sehen, dass die ausgewählte Farbe gespeichert wird und eine Stunde lang gespeichert bleibt. Nichts hindert Sie jedoch daran, die Auswahl viel länger zu speichern. Fügen Sie dem Verfallsdatum einfach einen größeren Wert hinzu oder legen Sie einen absoluten Wert dafür fest.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!