sessionState-Element (ASP.NET-Einstellungsschema)

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, untergeordnete Elemente und übergeordnete Elemente beschrieben.

Attribute

Attribute

Beschreibungen

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 Sitzungszustandsmodi .

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.

HinweisHinweis
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.
ValueBeschreibungen
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 Sitzungszustandsmodi.

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 Sitzungszustandsmodi.

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

ValueBeschreibungen
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 Standardwert 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 Sitzungszustandsmodi.

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;"
HinweisHinweis
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 Sitzungszustandsmodi.

HinweisHinweis
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 Identitätswechsel in ASP.NET.

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

Die Standardeinstellung ist true.

HinweisHinweis
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

Beschreibungen

providers

Enthält eine Auflistung benutzerdefinierter Sitzungszustandsspeicher-Anbieter.

Übergeordnete Elemente

Element

Beschreibungen

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.

    HinweisHinweis

    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

Gewusst wie: Konfigurieren von bestimmten Verzeichnissen mit Standorteinstellungen

Gewusst wie: Sperren von ASP.NET-Konfigurationseinstellungen

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

Identitätswechsel in ASP.NET

Sitzungszustandsmodi

Sichern des Sitzungszustands

ASP.NET-Konfigurationsdateihierarchie und Vererbung

Absichern der ASP.NET-Konfiguration

ASP.NET-Konfigurationsszenarios

Weitere Ressourcen

Verschlüsseln von Konfigurationsinformationen mithilfe der geschützten Konfiguration

Allgemeine Konfigurationseinstellungen (ASP.NET)

ASP.NET-Konfigurationseinstellungen

ASP.NET-Websiteverwaltung

ASP.NET-Konfigurations-API