Freigeben über


sessionState-Element (ASP.NET-Einstellungsschema)

[Dieses Dokument dient lediglich Vorschauzwecken und kann in späteren Versionen geändert werden. Leere Themen sind als Platzhalter enthalten.]

Konfiguriert Sitzungszustandseinstellungen für die aktuelle Anwendung.

<sessionState 
    mode="[Off|InProc|StateServer|SQLServer|Custom]"
    timeout="number of minutes"
    cookieName="session identifier cookie name"
    cookieless=
         "[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
    regenerateExpiredSessionId="[True|False]"
    sessionIDManagerType="session manager type"
    sqlConnectionString="sql connection string"
    sqlCommandTimeout="number of seconds"
    allowCustomSqlDatabase="[True|False]"
    useHostingIdentity="[True|False]"
    stateConnectionString="tcpip=server:port"
    stateNetworkTimeout="number of seconds"
    customProvider="custom provider name"
    compressionEnabled="[True|False]"
    sqlConnectionRetryInterval="number of seconds">
    <providers>...</providers>
</sessionState>

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

Attribut

Beschreibung

allowCustomSqlDatabase

Optionales Boolean-Attribut.

Gibt an, ob die SQL-Datenbank für den Sitzungszustand anstelle der ASP.NET-Standarddatenbank auch eine benutzerdefinierte Datenbank sein kann. Hat dieses Attribut den Wert false, können Sie als Wert für das sqlConnectionString-Attribut weder einen Anfangskatalog noch eine Datenbank angeben. Die standardmäßige SQL-Datenbank für den Sitzungszustand ist die Datenbank ASPState. Weitere Informationen finden Sie unter Session State Modes .

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Die Standardeinstellung ist false.

compressionEnabled

Optionales Boolean-Attribut.

Gibt an, ob die Komprimierung für die Sitzungszustandsdaten übernommen wird.

Die Standardeinstellung ist false.

cookieless

Optionales HttpCookieMode-Attribut.

Gibt an, wie Cookies für eine Webanwendung verwendet werden.

Das cookieless-Attribut kann einen der folgenden möglichen Werte annehmen. Der Standardwert ist UseCookies.

NoteNote
Beim Konfigurieren einer AJAX-fähigen ASP.NET-Website sollten Sie nur den Standardwert von UseCookies für das cookieless-Attribut verwenden.Andere Einstellungen, die in der URL codierte Cookies umfassen, werden von den ASP.NET-AJAX-Clientskriptbibliotheken nicht unterstützt.
WertBeschreibung
AutoDetect ASP.NET bestimmt, ob der anfordernde Browser oder das Gerät Cookies unterstützt.Für den Fall, dass der anfordernde Browser oder das anfordernde Gerät Cookies unterstützt, verwendet AutoDetect Cookies zum Speichern von Benutzerdaten. Andernfalls wird ein Bezeichner in der Abfragezeichenfolge verwendet.Wenn der Browser oder das Gerät die Verwendung von Cookies unterstützt, Cookies aber momentan deaktiviert sind, werden von dem anfordernden Feature trotzdem Cookies verwendet.
UseCookies Cookies werden zum Speichern von Benutzerdaten verwendet, unabhängig davon, ob der Browser oder das Gerät Cookies unterstützt.
UseDeviceProfile ASP.NET bestimmt, ob basierend auf der HttpBrowserCapabilities-Einstellung Cookies verwendet werden.Wenn die HttpBrowserCapabilities-Einstellung angibt, dass der Browser oder das Gerät Cookies unterstützt, werden Cookies verwendet. Andernfalls wird ein Bezeichner in der Abfragezeichenfolge verwendet.
UseUri Die aufrufende Funktion speichert einen Bezeichner in der Abfragezeichenfolge, unabhängig davon, ob der Browser oder das Gerät Cookies unterstützt.

cookieName

Optionales String-Attribut.

Gibt den Namen des Cookies an, in dem die Sitzungs-ID gespeichert wird.

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Der Standardwert ist "ASP.NET_SessionId".

customProvider

Optionales String-Attribut.

Gibt den Namen eines benutzerdefinierten Sitzungszustandsanbieters für das Speichern und Abrufen der Sitzungszustandsdaten an. Der Anbieter wird im providers-Element angegeben. Der Anbieter wird nur verwendet, wenn der Sitzungszustandsmodus auf Custom festgelegt ist. Weitere Informationen finden Sie unter Session State Modes.

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Der Standardwert ist eine leere Zeichenfolge ("").

mode

Optionales SessionStateMode-Attribut.

Gibt an, wo die Sitzungszustandswerte gespeichert werden. Weitere Informationen finden Sie unter Session State Modes.

Das mode-Attribut kann einen der folgenden möglichen Werte annehmen. Der Standardwert ist InProc.

WertBeschreibung
Custom Für den Sitzungszustand wird ein benutzerdefinierter Datenspeicher zum Speichern der Sitzungszustandsinformationen verwendet.
InProc Der Sitzungszustand wird in einem ASP.NET-Arbeitsprozess verarbeitet.
Off Der Sitzungszustand ist deaktiviert.
SQLServer Für den Sitzungszustand wird eine prozessexterne SQL Server-Datenbank zum Speichern der Zustandsinformationen verwendet.
StateServer Der Sitzungszustand verwendet zum Speichern der Zustandsinformationen einen prozessexternen ASP.NET-Zustandsdienst.

partitionResolverType

Optionales String-Attribut.

Gibt an, wo der Sitzungszustand gespeichert werden soll. Wenn für das partitionResolverType-Attribut ein Wert angegeben wurde, werden das sqlConnectionString-Attribut und das stateConnectionString-Attribut ignoriert. Die von der PartitionResolverType-Eigenschaft zurückgegebene Verbindungszeichenfolge wird bei jeder Anforderung verwendet, um für die weitere Verarbeitung der Anforderung eine Verbindung zu dem entsprechenden Serverspeicherort herzustellen. Wenn die Verbindungszeichenfolge ungültig ist, löst ASP.NET die gleiche Ausnahme aus, die ausgelöst wird, wenn die konfigurierte Verbindungszeichenfolge zum Server ungültig ist. Diese Eigenschaft wird verwendet, um die Sitzungszustandsdaten im SQL- oder im Zustandsservermodus auf mehrere Back-End-Knoten zu verteilen.

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Der Standard ist eine leere Zeichenfolge.

regenerateExpiredSessionId

Optionales Boolean-Attribut.

Legt fest, ob eine neue Sitzungs-ID ausgegeben wird, wenn der Client eine abgelaufene Sitzungs-ID angibt. Standardmäßig werden neue Sitzungs-IDs für den cookieless-Modus nur ausgegeben, wenn regenerateExpiredSessionId aktiviert ist. Weitere Informationen finden Sie unter IsCookieless.

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Die Standardeinstellung ist true.

sessionIDManagerType

Optionales String-Attribut.

Gibt den vollqualifizierten Typ des Sitzungs-ID-Managers an. Der Standardwert ist eine leere Zeichenfolge ("").

sqlCommandTimeout

Optionales TimeSpan-Attribut.

Gibt das Timeout in Sekunden für SQL-Befehle bei Verwendung des SQL Server-Sitzungszustandsmodus an. Das Timeout ist die Anzahl von Sekunden, für die sich ein SQL-Befehl im Leerlauf befinden kann, bevor er abgebrochen wird.

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Die Standardeinstellung ist 0:00:30 (30 Sekunden).

sqlConnectionRetryInterval

Optionales TimeSpan-Attribut.

Gibt das Zeitintervall in Sekunden zwischen Verbindungsversuchen mit der Datenbank an.

Der Standardwert ist 0 Sekunden.

sqlConnectionString

Optionales String-Attribut.

Gibt die Verbindungszeichenfolge für einen Computer an, auf dem SQL Server ausgeführt wird. Dieses Attribut ist erforderlich, wenn das mode-Attribut auf den Wert SQLServer festgelegt ist. Weitere Informationen finden Sie unter Session State Modes.

Sie können dieses Attribut entweder auf eine benannte sqlConnectionString aus dem connectionStrings-Knoten festlegen oder die folgende Syntax verwenden:

sqlConnectionString="Data Source=.\SQLServer2005;Initial Catalog=SessionState;Integrated Security=SSPI;"
NoteNote
Um bei Verwendung des SQLServer-Modus größtmögliche Sicherheit zu gewährleisten, schützen sie den sqlConnectionString-Wert mithilfe der geschützten Konfiguration, indem Sie den sessionState-Abschnitt der Konfiguration verschlüsseln.

Der Standardwert ist "data source=127.0.0.1;Integrated Security=SSPI".

stateConnectionString

Optionales String-Attribut.

Gibt den Namen oder die Adresse des Servers sowie den Anschluss für die Remotespeicherung des Sitzungsstatus an. Der Anschlusswert muss 42424 sein. Dieses Attribut ist erforderlich, wenn mode der StateServer-Wert ist. Stellen Sie sicher, dass auf dem Remoteserver für die Speicherung der Sitzungszustandsinformationen der ASP.NET-Zustandsdienst ausgeführt wird. Dieser Dienst wird mit ASP.NET installiert und standardmäßig unter %windir%\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe gespeichert. Weitere Informationen finden Sie unter Session State Modes.

NoteNote
Um bei Verwendung des StateServer-Modus größtmögliche Sicherheit zu gewährleisten, schützen sie den stateConnectionString-Wert mithilfe der geschützten Konfiguration, indem Sie den sessionState-Abschnitt der Konfiguration verschlüsseln.

Der Standardwert ist "tcpip=127.0.0.1:42424".

stateNetworkTimeout

Optionales TimeSpan-Attribut.

Gibt die Anzahl von Sekunden an, für die sich die TCP/IP-Netzwerkverbindung zwischen dem Webserver und dem Zustandsserver im Leerlauf befinden darf, bevor die Anforderung abgebrochen wird. Dieses Attribut wird verwendet, wenn das mode-Attribut auf StateServer festgelegt ist.

Der Standardwert ist 10 Sekunden.

timeout

Optionales TimeSpan-Attribut.

Gibt die mögliche Leerlaufdauer einer Sitzung in Minuten an, bevor die Sitzung abgebrochen wird. Das timeout-Attribut kann für den prozessinternen Modus und den Zustandsservermodus nicht auf Werte festgelegt werden, die größer als 525,600 Minuten (1 Jahr) sind.

Die timeout-Konfigurationseinstellung der Sitzung gilt nur für ASP.NET-Seiten. Das Ändern des timeout-Werts einer Sitzung hat keine Auswirkung auf das Sitzungstimeout für ASP-Seiten. Ebenso hat das Ändern des Sitzungstimeouts für ASP-Seiten keine Auswirkung auf das Sitzungstimeout für ASP.NET-Seiten.

Die Standardeinstellung ist 20 Minuten.

useHostingIdentity

Optionales Boolean-Attribut.

Gibt an, ob der Sitzungszustand auf die Hostidentität zurückgesetzt wird oder ob der Clientidentitätswechsel verwendet wird.

Hat dieses Attribut den Wert true, stellt ASP.NET unter Verwendung einer der folgenden Prozessanmeldeinformationen eine Verbindung mit dem Sitzungszustandsspeicher her:

  • Der Hostprozess, also ASPNET für Microsoft Internetinformationsdienste (IIS), Versionen 5 und 5.1, oder NETZWERKDIENST für Microsoft Windows Server 2003.

  • Die von der Anwendung imitierte Identität bei Verwendung der folgenden Konfiguration:

    <identity impersonate="true" userName="Domäne\Benutzername" password="sicheres Kennwort" />

Im Fall von false stellt ASP.NET mit den Anmeldeinformationen, die momentan dem Betriebssystemthread der aktuellen Anforderung zugeordnet sind, eine Verbindung mit dem Sitzungszustandsspeicher her. Bei Clientidentitätswechsel verwendet ASP.NET die mit dem Browser ausgehandelten sicheren Anmeldeinformationen, um eine Verbindung mit dem Sitzungszustandsspeicher herzustellen. Im Fall von false wird ASP.NET beim Verbinden mit dem Sitzungszustandsspeicher nicht auf die Prozessidentität oder die von der Anwendung imitierte Identität zurückgesetzt. Weitere Informationen finden Sie unter ASP.NET Impersonation.

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Die Standardeinstellung ist true.

NoteNote
Wenn in .NET Framework, Version 1.1, das mode-Attribut auf SQLServer festgelegt wurde und Clientidentitätswechsel aktiviert war, hat ASP.NET die Clientanmeldeinformationen des ASP.NET-Clientidentitätswechsels verwendet, um eine Verbindung mit dem Computer herzustellen, der SQL Server ausführt.

Geerbte Attribute

Optionale Attribute.

Attribute, die von allen Abschnittselementen geerbt werden.

Untergeordnete Elemente

Element

Beschreibung

providers

Enthält eine Auflistung benutzerdefinierter Sitzungszustandsspeicher-Anbieter.

Übergeordnete Elemente

Element

Beschreibung

configuration

Das erforderliche Stammelement in jeder Konfigurationsdatei, die von der Common Language Runtime und den .NET Framework-basierten Anwendungen verwendet wird.

system.web

Gibt das Stammelement für die ASP.NET-Konfigurationseinstellungen in einer Konfigurationsdatei an und enthält Elemente, die ASP.NET-Webanwendungen konfigurieren und das Verhalten der Anwendungen steuern.

Hinweise

Das <sessionState>-Element konfiguriert Sitzungszustandseinstellungen für die aktuelle Anwendung.

Wenn ein neuer Client mit einer Webanwendung in Interaktion tritt, wird eine Sitzungs-ID vergeben und allen folgenden Anforderungen dieses Clients zugeordnet, solange der Gültigkeitszeitraum der Sitzung noch nicht abgelaufen ist. Diese ID wird verwendet, um den serverseitigen Zustand der Clientsitzung zwischen den Anforderungen zu verwalten. Das <sessionState>-Element steuert, auf welche Art und Weise die ASP.NET-Anwendung diese Zuordnung zu jedem Client herstellt und aufrecht erhält.

Dieser Mechanismus ist sehr flexibel und gibt Ihnen unter anderem die Möglichkeit, Sitzungszustandsinformationen außerhalb von Prozessen zu hosten und den Zustand ohne die Verwendung von Cookies zu verfolgen.

Wenn Sie die Sitzungs-ID im URI senden, überschreiten Sie möglicherweise die maximale Größe des URI. Wenn die Kombination aus dem Ticket für anonyme Identifikation, dem Formularauthentifizierungsticket, der Sitzungs-ID und den Benutzerdaten die maximal zulässige URI-Länge überschreitet, schlägt die Anforderung fehl (mit der Fehlermeldung 400 - Ungültige Anforderung).

So verwenden Sie den "StateServer"-Modus

  1. Stellen Sie sicher, dass auf dem Remoteserver für die Speicherung der Sitzungszustandsinformationen der ASP.NET-Zustandsdienst ausgeführt wird.

    Der ASP.NET-Zustandsdienst wird zusammen mit ASP.NET installiert und befindet sich standardmäßig unter %windir%\Microsoft.NET\Framework\version\aspnet_state.exe.

  2. Legen Sie in der Datei Web.config der Anwendung mode auf "StateServer" und stateConnectionString auf einen Wert wie "tcpip=dataserver:42424" fest.

So verwenden Sie den "SQLServer"-Modus

  1. Führen Sie InstallSqlState.sql auf dem Computer für die Speicherung des Sitzungszustands aus, auf dem SQL Server ausgeführt wird.

    Standardmäßig befindet sich InstallSqlState.sql unter %windir%\Microsoft.NET\Framework\Version.

    Damit erstellen Sie eine Datenbank mit dem Namen ASPState mit neuen gespeicherten Prozeduren und der Tabelle ASPStateTempApplications sowie der Tabelle ASPStateTempSessions in der Datenbank TempDB.

  2. Legen Sie in der Datei Web.config der Anwendung mode auf "SQLServer" und sqlConnectionString auf einen Wert wie "data source=localhost;Integrated Security=SSPI;" fest.

    Hinweis

    Sie können Aspnet_regsql.exe verwenden, um diese Schritte auszuführen.

Informationen darüber, wie Sie im Anwendungscode auf Konfigurationswerte für das <sessionState>-Element zugreifen und diese ändern können, finden Sie unter SessionStateSection und System.Web.SessionState.

Standardkonfiguration

Das folgende <sessionState>-Standardelement wird nicht explizit in der Datei Machine.config oder der Stammdatei Web.config konfiguriert. Es ist jedoch die Standardkonfiguration, die von der Anwendung zurückgegeben wird.

<sessionState 
   mode="InProc" 
   stateConnectionString="tcpip=127.0.0.1:42424" 
   stateNetworkTimeout="10" 
   sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI" 
   sqlCommandTimeout="30" 
   customProvider="" 
   cookieless="UseCookies" 
   cookieName="ASP.NET_SessionId" 
   timeout="20" 
   allowCustomSqlDatabase="false" 
   regenerateExpiredSessionId="true" 
   partitionResolverType="" 
   useHostingIdentity="true">
   <providers>
      <clear />
   </providers>
</sessionState>

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie Konfigurationseinstellungen für den Sitzungszustand angegeben werden.

<sessionState
   mode="SQLServer"
   cookieless="true"
   sqlConnectionString=" Integrated Security=SSPI;data source=MySqlServer;"
   sqlCommandTimeout="10" />

Elementinformationen

Konfigurationsabschnittshandler

SessionStateSection

Konfigurationsmember

System.Web.SessionState

Konfigurierbare Speicherorte

Machine.config

Web.config auf der Stammebene

Web.config auf der Anwendungsebene

Anforderungen

Microsoft Internetinformationsdienste (IIS), Version 5.0, 5.1 oder 6.0

.NET Framework, Version 1.0, 1.1 oder 2.0

Microsoft Visual Studio 2003 oder Visual Studio 2005

Siehe auch

Aufgaben

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

Referenz

system.web-Element (ASP.NET-Einstellungsschema)

providers-Element für sessionState (ASP.NET-Einstellungsschema)

configuration-Element (allgemeines Einstellungsschema)

System.Configuration

System.Web.Configuration

SessionStateSection

System.Web.SessionState

Konzepte

ASP.NET Impersonation

Session State Modes

Securing Session State

ASP.NET Configuration File Hierarchy

Securing Configuration

Configuration Inheritance

Weitere Ressourcen

Protected Configuration

Allgemeine Konfigurationseinstellungen (ASP.NET)

ASP.NET-Konfigurationseinstellungen

Configuring ASP.NET Applications

ASP.NET Configuration API