TOC

This article is currently in the process of being translated into German (~99% done).

State:

Sessions

In Sessions (Sitzungen) können auch komplexe Daten für den Benutzer gespeichert werden, genau wie bei Cookies. Tatsächlich verwenden die Sessions Cookies, um die Daten zu speichern, es sei denn, Sie weisen sie ausdrücklich darauf hin. Sessions können in ASP.NET mit dem Session-Objekt einfach verwendet werden. Wir werden das Cookie-Beispiel wiederverwenden und stattdessen Sitzungen verwenden. Beachten Sie jedoch, dass die Sessions nach einer bestimmten Anzahl von Minuten ablaufen, so wie es in der Datei web.config konfiguriert ist. Markup-Code:

<%@ 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>Sessions</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>

Und hier ist der "CodeBehind"-Code:

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(Session["BackgroundColor"] != null)
        {
            ColorSelector.SelectedValue = Session["BackgroundColor"].ToString();
            BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
        }
    }

    protected void ColorSelector_IndexChanged(object sender, EventArgs e)
    {
        BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
        Session["BackgroundColor"] = ColorSelector.SelectedValue;
    }
}

Wie Sie sehen können, benötigt das Beispiel nicht viele Änderungen, um Sessions (Sitzungen) anstelle von Cookies zu verwenden. Bitte beachten Sie, dass die Session-Werte an eine Instanz Ihres Browsers gebunden sind. Wenn Sie den Browser schließen, sind die gespeicherten Werte in der Regel "verloren".

Auch wenn der Webserver den Prozess aspnet_wp.exe recycelt, gehen Sessions (Sitzungen) verloren, da sie im Speicher des Browsers gespeichert sind. Dies kann durch das Speichern des jeweiligen Zustandes der Session auf einem separaten StateServer oder mit Hilfe eines SQL-Server vermieden werden. Dies liegt aber außerhalb des Umfangs dieses Artikels.

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!