(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

HttpSessionState-Klasse

Ermöglicht den Zugriff auf Werte des Sitzungszustands und Einstellungen der Sitzungsebene sowie auf Methoden für die Lebensdauerverwaltung.

System.Object
  System.Web.SessionState.HttpSessionState

Namespace:  System.Web.SessionState
Assembly:  System.Web (in System.Web.dll)

public sealed class HttpSessionState : ICollection, 
	IEnumerable

Der HttpSessionState-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche EigenschaftCodePageRuft den Zeichensatzbezeichner der aktuellen Sitzung ab oder legt diesen fest.
Öffentliche EigenschaftContentsRuft einen Verweis auf das aktuelle Sitzungszustandsobjekt ab.
Öffentliche EigenschaftCookieModeRuft einen Wert ab, der angibt, ob die Anwendung für Sitzungen ohne Cookies konfiguriert ist.
Öffentliche EigenschaftCountRuft die Anzahl der Elemente in der Sitzungszustandsauflistung ab.
Öffentliche EigenschaftIsCookielessRuft einen Wert ab, der angibt, ob die Sitzungs-ID in der URL eingebettet oder in einem HTTP-Cookie gespeichert ist.
Öffentliche EigenschaftIsNewSessionRuft einen Wert ab, der angibt, ob die Sitzung mit der aktuellen Anforderung erstellt wurde.
Öffentliche EigenschaftIsReadOnlyRuft einen Wert ab, der angibt, ob die Sitzung schreibgeschützt ist.
Öffentliche EigenschaftIsSynchronizedRuft einen Wert ab, der angibt, ob der Zugriff auf die Auflistung der Sitzungszustandswerte synchronisiert (threadsicher) ist.
Öffentliche EigenschaftItem[Int32]Ruft einen Sitzungswert über den numerischen Index ab oder legt diesen fest.
Öffentliche EigenschaftItem[String]Ruft einen Sitzungswert über den Namen ab oder legt diesen fest.
Öffentliche EigenschaftKeysRuft eine Auflistung der Schlüssel für alle Werte ab, die in der Sitzungszustandsauflistung gespeichert sind.
Öffentliche EigenschaftLCIDRuft den Gebietsschemabezeichner (LCID, Locale Identifier) der aktuellen Sitzung ab oder legt diesen fest.
Öffentliche EigenschaftModeRuft den aktuellen Sitzungszustandsmodus ab.
Öffentliche EigenschaftSessionIDRuft den eindeutigen Bezeichner der Sitzung ab.
Öffentliche EigenschaftStaticObjectsRuft eine Auflistung von Objekten ab, die durch <object Runat="Server" Scope="Session"/>-Tags innerhalb der ASP.NET-Anwendungsdatei Global.asax deklariert werden.
Öffentliche EigenschaftSyncRootRuft ein Objekt ab, mit dem der Zugriff auf die Auflistung der Sitzungszustandswerte synchronisiert werden kann.
Öffentliche EigenschaftTimeoutRuft die Zeitspanne in Minuten ab, die zwischen Anforderungen zulässig ist, bevor der Sitzungszustandsanbieter die Sitzung beendet, oder legt diese fest.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeAbandonBricht die aktuelle Sitzung ab.
Öffentliche MethodeAddFügt der Sitzungszustandsauflistung ein neues Element hinzu.
Öffentliche MethodeClearEntfernt alle Schlüssel und Werte aus der Sitzungszustandsauflistung.
Öffentliche MethodeCopyToKopiert die Auflistung der Sitzungszustandswerte in ein eindimensionales Array, beginnend am angegebenen Index im Array.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeGetEnumeratorGibt einen Enumerator zurück, mit dem alle Namen der Sitzungszustandsvariablen in der aktuellen Sitzung gelesen werden können.
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeRemoveLöscht ein Element aus der Sitzungszustandsauflistung.
Öffentliche MethodeRemoveAllEntfernt alle Schlüssel und Werte aus der Sitzungszustandsauflistung.
Öffentliche MethodeRemoveAtLöscht ein Element an einem angegebenen Index aus der Sitzungszustandsauflistung.
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche ErweiterungsmethodeAsParallelErmöglicht die Parallelisierung einer Abfrage. (Durch ParallelEnumerable definiert.)
Öffentliche ErweiterungsmethodeAsQueryableKonvertiert einen IEnumerable in einen IQueryable. (Durch Queryable definiert.)
Öffentliche ErweiterungsmethodeCast<TResult>Wandelt die Elemente eines IEnumerable in den angegebenen Typ um. (Durch Enumerable definiert.)
Öffentliche ErweiterungsmethodeOfType<TResult>Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs. (Durch Enumerable definiert.)
Zum Seitenanfang

ASP.NET stellt Funktionen für die Verwaltung des Sitzungszustands bereit, damit Sie über mehrere Anforderungen hinweg Informationen zu einer eindeutigen Browsersitzung speichern können. Sie können eine Auflistung von Werten speichern, auf die über einen Schlüsselnamen oder einen numerischen Index verwiesen wird. Der Zugriff auf die Sitzungswerte und -funktionen ist über die HttpSessionState-Klasse möglich, die über die Session-Eigenschaft des aktuellen HttpContext oder der Session-Eigenschaft der Page abgerufen wird.

Die Sitzungsdaten werden mithilfe eines eindeutigen Bezeichners einer bestimmten Browsersitzung zugeordnet. In der Standardeinstellung wird diese ID in einem Sitzungscookie ohne Ablaufdatum im Browser gespeichert. Sie können Ihre Anwendung jedoch auch so konfigurieren, dass die Sitzungs-ID in der URL gespeichert wird. Legen Sie hierzu das cookieless-Attribut im sessionState-Element der Anwendungskonfiguration auf true oder UseUri fest. Sie können festlegen, dass ASP.NET bestimmt, ob der Browser Cookies unterstützt, indem Sie den Wert UseDeviceProfile für das cookieless-Attribut angeben. Sie können außerdem festlegen, dass ASP.NET bestimmen soll, ob Cookies im Browser aktiviert sind, indem Sie den Wert AutoDetect für das cookieless-Attribut angeben. Wenn bei der Angabe von UseDeviceProfile Cookies unterstützt oder bei der Angabe von AutoDetect Cookies aktiviert sind, wird die Sitzungs-ID in einem Cookie gespeichert. Andernfalls wird die Sitzungs-ID in der URL gespeichert.

Eine Sitzung wird mit einer ersten Anfrage gestartet. Die Sitzungswerte werden beibehalten, solange der Browser vor Verstreichen der in der Timeout-Eigenschaft angegebenen Anzahl von Minuten neue Anforderungen sendet. Am Anfang einer neuen Sitzung wird das Start-Ereignis der Sitzung ausgelöst. Sie können dieses Ereignis verwenden, um beim Start einer Sitzung zusätzliche Aufgaben zu erledigen, z. B. um Standardwerte für die Sitzung festzulegen. Wenn das Timeout einer Sitzung überschritten, die Abandon-Methode aufgerufen oder die ASP.NET-Anwendung beendet wird, wird das End-Ereignis für die Sitzung ausgelöst. Sie können dieses Ereignis verwenden, um eine ggf. erforderliche Bereinigung auszuführen. Das End-Ereignis wird nur ausgelöst, wenn der mode des Sitzungszustands auf InProc festgelegt ist.

Zur Leistungssteigerung reservieren Sitzungen, die Cookies verwenden, keinen Sitzungspeicher, bis Daten tatsächlich im Session-Objekt gespeichert werden. Weitere Informationen finden Sie in den Ausführungen zur SessionID-Eigenschaft.

Der Sitzungszustand bleibt nicht über ASP.NET-Anwendungsgrenzen erhalten. Wenn in einem Browser zu einer anderen Anwendung gewechselt wird, stehen die Sitzungsinformationen der neuen Anwendung nicht zur Verfügung.

In der Standardeinstellung werden die Sitzungswerte auf den Webserver im Arbeitsspeicher gespeichert. Die Sitzungswerte können jedoch auch in einer SQL Server-Datenbank, einem ASP.NET-Zustandsserver oder einem benutzerdefinierten Server gespeichert werden. Dadurch werden Sitzungswerte beibehalten, auch wenn der ASP.NET- bzw. der IIS-Prozess oder die ASP.NET-Anwendung neu gestartet wird, und die Sitzungswerte können allen Servern in einer Webfarm verfügbar gemacht werden. Die Konfiguration dieses Verhaltens erfolgt durch das Festlegen des mode-Attributs auf einen gültigen SessionStateMode-Wert im sessionState-Element der Anwendungskonfiguration. Weitere Informationen finden Sie unter Session State Modes.

Zum Sitzungszustand gibt es die folgenden Alternativen: den Anwendungszustand (siehe Application-Eigenschaft) und ASP.NET-Cache (siehe System.Web.Caching-Namespace), in denen Variablen gespeichert werden, auf die alle Benutzer einer ASP.NET-Anwendung zugreifen können; das ASP.NET-Profil (siehe System.Web.Profile-Namespace), in dem Benutzerwerte in einem Datenspeicher beibehalten werden, die nach einem Timeout nicht verfallen; ASP.NET-System.Web.UI.WebControls, bei denen Steuerelementwerte im ViewState beibehalten werden; Cookies; die QueryString-Eigenschaft; Felder in einem HTML-Formular, die mithilfe der Form-Auflistung aus einem HTTP-POST verfügbar sind. Weitere Informationen über die Unterschiede zwischen dem Sitzungszustand und den anderen Möglichkeiten der Zustandsverwaltung finden Sie unter ASP.NET State-Management Recommendations.

TopicLocation
Gewusst wie: Beispiel eines Sitzungszustandsspeicher-AnbietersErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Lesen von Werten aus dem SitzungszustandErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Speichern von Werten im SitzungszustandErstellen von ASP.NET-Webanwendungen
Gewusst wie: Beispiel eines Sitzungszustandsspeicher-AnbietersErstellen von ASP.NET-Webanwendungen
Gewusst wie: Lesen von Werten aus dem SitzungszustandErstellen von ASP.NET-Webanwendungen
Gewusst wie: Speichern von Werten im SitzungszustandErstellen von ASP.NET-Webanwendungen in Visual Studio

Im folgenden Codebeispiel werden Werte für den Sitzungszustand festgelegt und abgerufen.

SicherheitshinweisSicherheitshinweis

In diesem Beispiel ist ein Textfeld für eine Benutzereingabe enthalten. Dies stellt ein potenzielles Sicherheitsrisiko dar. Standardmäßig stellt die ASP.NET-Seite sicher, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen finden Sie unter Script Exploits Overview.


<%@ Page Language="C#" %>
<%@ Import Namespace="System.Collections" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  public void Page_Load(object sender, EventArgs args)
  {
    if (!IsPostBack)
    {
      if (Session["address"] == null)
      {
        enterUserInfoPanel.Visible = true;
        userInfoPanel.Visible = false;
      }
      else
      {
        enterUserInfoPanel.Visible = false;
        userInfoPanel.Visible = true;

        SetLabels();
      }
    }
  }

  protected void SetLabels()
  {
    firstNameLabel.Text = Session["firstName"].ToString();
    lastNameLabel.Text = Session["lastName"].ToString();
    addressLabel.Text = Session["address"].ToString();
    cityLabel.Text = Session["city"].ToString();
    stateOrProvinceLabel.Text = Session["stateOrProvince"].ToString();
    zipCodeLabel.Text = Session["zipCode"].ToString();
    countryLabel.Text = Session["country"].ToString();
  }

  protected void EnterInfoButton_OnClick(object sender, EventArgs e)
  {
    Session["firstName"] = Server.HtmlEncode(firstNameTextBox.Text);
    Session["lastName"] = Server.HtmlEncode(lastNameTextBox.Text);
    Session["address"] = Server.HtmlEncode(addressTextBox.Text);
    Session["city"] = Server.HtmlEncode(cityTextBox.Text);
    Session["stateOrProvince"] = Server.HtmlEncode(stateOrProvinceTextBox.Text);
    Session["zipCode"] = Server.HtmlEncode(zipCodeTextBox.Text);
    Session["country"] = Server.HtmlEncode(countryTextBox.Text);

    enterUserInfoPanel.Visible = false;
    userInfoPanel.Visible = true;

    SetLabels();
  }

  protected void ChangeInfoButton_OnClick(object sender, EventArgs args)
  {
    enterUserInfoPanel.Visible = true;
    userInfoPanel.Visible = true;
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <meta http-equiv="Content-Type" content="text/html" />
  <title>User Information</title>
</head>
<body>
  <form id="form1" runat="server">
    <h3>
      User information</h3>
    <asp:Label ID="Msg" ForeColor="maroon" runat="server" /><br />
    <asp:Panel ID="enterUserInfoPanel" runat="server">
      <table cellpadding="3" border="0">
        <tr>
          <td>
            First name:</td>
          <td>
            <asp:TextBox ID="firstNameTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Last name:</td>
          <td>
            <asp:TextBox ID="lastNameTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Address:</td>
          <td>
            <asp:TextBox ID="addressTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            City:</td>
          <td>
            <asp:TextBox ID="cityTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            State or Province:</td>
          <td>
            <asp:TextBox ID="stateOrProvinceTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Zip Code/Postal Code:</td>
          <td>
            <asp:TextBox ID="zipCodeTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Country:</td>
          <td>
            <asp:TextBox ID="countryTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            &nbsp;</td>
          <td>
            <asp:Button ID="enterInfoButton" runat="server" Text="Enter user information" OnClick="EnterInfoButton_OnClick" /></td>
        </tr>
      </table>
    </asp:Panel>
    <asp:Panel ID="userInfoPanel" runat="server">
      <table cellpadding="3" border="0">
        <tr>
          <td>
            Name:</td>
          <td>
            <asp:Label ID="firstNameLabel" runat="server" />
            <asp:Label ID="lastNameLabel" runat="server" />
          </td>
        </tr>
        <tr>
          <td valign="top">
            address:</td>
          <td>
            <asp:Label ID="addressLabel" runat="server" /><br />
            <asp:Label ID="cityLabel" runat="server" />,
            <asp:Label ID="stateOrProvinceLabel" runat="server" />
            <asp:Label ID="zipCodeLabel" runat="server" /><br />
            <asp:Label ID="countryLabel" runat="server" />
          </td>
        </tr>
        <tr>
          <td>
            &nbsp;</td>
          <td>
            <asp:Button ID="changeInfoButton" runat="server" Text="Change user information" OnClick="ChangeInfoButton_OnClick" /></td>
        </tr>
      </table>
    </asp:Panel>
  </form>
</body>
</html>


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft