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.
Hinweis
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:
Hinweis
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.
Hinweis
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:
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.
Hinweis
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
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.
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
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.
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 |
|
Konfigurationsmember |
|
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)
Konzepte
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)