Freigeben über


SessionStateSection-Klasse

Konfiguriert den Sitzungszustand für eine Webanwendung.

Syntax

class SessionStateSection : ConfigurationSectionWithCollection  

Methoden

In der folgenden Tabelle werden die Methoden aufgelistet, die von der SessionStateSection-Klasse verfügbar gemacht werden.

Name Beschreibung
Add (Hinzufügen) (Geerbt von ConfigurationSectionWithCollection.)
Clear (Geerbt von ConfigurationSectionWithCollection.)
Get (Geerbt von ConfigurationSectionWithCollection.)
GetAllowDefinition (Geerbt von ConfigurationSection.)
GetAllowLocation (Geerbt von ConfigurationSection.)
Remove (Geerbt von ConfigurationSectionWithCollection.)
RevertToParent (Geerbt von ConfigurationSection.)
SetAllowDefinition (Geerbt von ConfigurationSection.)
SetAllowLocation (Geerbt von ConfigurationSection.)

Eigenschaften

In der folgenden Tabelle werden die Eigenschaften aufgeführt, die von der SessionStateSection Klasse verfügbar gemacht werden.

Name Beschreibung
AllowCustomSqlDatabase Ein boolean Lese-/Schreibwert. true wenn der Benutzer den anfänglichen Katalogwert in der SqlConnectionString Eigenschaft angeben darf; andernfalls false. Der Standardwert ist false.
Cookieless Ein sint32 Lese-/Schreibwert, der konfiguriert, wie Cookies verwendet werden, um Clientsitzungen zu identifizieren. Die möglichen Werte werden weiter unten im Abschnitt Hinweise aufgeführt. Hinweis: Es gibt zwei Möglichkeiten, wie der Sitzungszustand die eindeutige ID speichern kann, die dem Client eine Serversitzung zuordnet: indem sie ein HTTP-Cookie auf dem Client speichern oder die Sitzungs-ID in der URL codieren. Das Speichern der Sitzungs-ID im Cookie ist sicherer, erfordert jedoch, dass der Clientbrowser Cookies unterstützt. Für Anwendungen, die Clients erlauben, die Cookies nicht unterstützen, z. B. eine Vielzahl mobiler Geräte, kann die Sitzungs-ID in der URL gespeichert werden. Die URL-Option hat mehrere Nachteile. Es erfordert, dass die Links auf der Website relativ sind und dass die Seite am Anfang der Sitzung mit neuen Abfragezeichenfolgenwerten umgeleitet wird. Außerdem wird die Sitzungs-ID in der Abfragezeichenfolge verfügbar gemacht, in der sie in einem Sicherheitsangriff verwendet werden kann. Sie sollten den Modus ohne Cookies nur verwenden, wenn Sie Clients unterstützen müssen, die keine Cookie-Unterstützung haben.
CookieName Ein string Lese-/Schreibwert, der den Namen des HTTP-Cookies angibt, das für die Sitzungsidentifikation verwendet werden soll. Der Standardwert ist "ASP.NET_SessionId".
CustomProvider Ein string Wert mit Lese-/Schreibzugriff, der den Namen eines benutzerdefinierten Anbieters aus der Providers Eigenschaft angibt, die verwendet wird, wenn die Mode Eigenschaft auf Custom gesetzt ist.
Location (Geerbt von ConfigurationSection.) Eine Schlüsseleigenschaft.
Mode Ein sint32 Lese-/Schreibwert, der angibt, wo der Sitzungszustand gespeichert werden soll. Die möglichen Werte werden weiter unten im Abschnitt Hinweise aufgeführt. Hinweis: Die Mode Eigenschaft ist nicht erforderlich und kann von einer höheren Ebene in der Konfigurationshierarchie oder vom Standardwert geerbt werden. Der Konfigurationshandler schreibt jedoch immer den Modus basierend auf dem aktuellen geerbten Wert für den Abschnitt aus.
PartitionResolverType Ein string Wert mit Lese-/Schreibzugriff, der den vollqualifizierten Namen des Auflösungstyps enthält, der Sitzungszustandsdaten über mehrere Back-End-Knoten partitioniert, wenn die Mode Eigenschaft auf SQLServer oder StateServer gesetzt ist. Hinweis: Wenn diese Eigenschaft angegeben ist, werden die Eigenschaften SqlConnectionString und StateConnectionString ignoriert. Die von PartitionResolverType dieser zurückgegebene Verbindungszeichenfolge wird für jede Anforderung verwendet, um eine Verbindung mit dem entsprechenden Serverspeicherort für den Rest der Anforderung herzustellen. Wenn die Verbindungszeichenfolge ungültig ist, löst ASP.NET dieselbe Ausnahme aus, die ausgelöst wird, wenn die konfigurierte Verbindungszeichenfolge mit dem Server ungültig ist.
Path (Geerbt von ConfigurationSection.) Eine Schlüsseleigenschaft.
Providers Ein ProviderSettings-Wert, der den Namen und typ der Anbieter enthält, die sitzungszustandsbezogene Dienste ausführen.
RegenerateExpiredSessionId Ein boolean Lese-/Schreibwert. true wenn die Sitzungs-ID neu generiert wird, wenn vom Client eine abgelaufene Sitzungs-ID angegeben wird; andernfalls false. Der Standardwert ist false. Hinweis: Standardmäßig werden nur URLs ohne Cookies erneut ausgegeben, wenn diese Eigenschaft aktiviert ist.
SectionInformation (Geerbt von ConfigurationSection.)
SessionIDManagerType Ein string Wert mit Lese-/Schreibzugriff, der den vollqualifizierten Typ des Sitzungs-ID-Managers angibt.
SqlCommandTimeout Ein datetime Lese-/Schreibwert, der das Timeout für SQL-Befehle angibt, die den SQL Server-Sitzungszustandsmodus verwenden. Der Standardwert ist 30 Sekunden.
SqlConnectionString Ein string Wert mit Lese-/Schreibzugriff, der die Verbindungszeichenfolge mit einem SQL Server enthält. Der Standardwert ist "data source=localhost; Integrated Security=SSPI". Diese Eigenschaft ist erforderlich, wenn die Mode Eigenschaft auf SQLServer gesetzt ist.
StateConnectionString Ein string Lese-/Schreibwert, der den Servernamen und den Port angibt, wenn der Sitzungszustand remote gespeichert wird. Der Standardwert ist "tcpip=loopback:42424". Diese Eigenschaft ist erforderlich, wenn die Mode Eigenschaft auf StateServer gesetzt ist. Hinweis: Stellen Sie sicher, dass der ASP.NET Statusdienst auf dem Remoteserver ausgeführt wird, auf dem die Sitzungsstatusinformationen gespeichert werden. Dieser Dienst ist mit ASP.NET installiert und befindet sich standardmäßig unter [laufwerk:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Dieser Dienst ist standardmäßig für den manuellen Start konfiguriert. Sie müssen das Startverhalten in „Automatisch“ ändern.
StateNetworkTimeout Ein datetime Lese-/Schreibwert, der die Zeit in Sekunden angibt, die die Netzwerkverbindung zwischen dem Webserver und dem Statusserver im Leerlauf bleiben kann, bevor die Sitzung abgebrochen wird. Diese Eigenschaft ist erforderlich, wenn die Mode Eigenschaft auf StateServer gesetzt ist. Die Standardeinstellung beträgt 10 Sekunden.
Timeout Ein datetime Lese-/Schreibwert, der die Zeit in Minuten angibt, nach der die Sitzung aufgrund von Inaktivität abläuft. Der Standardwert beträgt 20 Minuten. Hinweis: Sie können die Timeout Eigenschaft nicht auf einen Wert festlegen, der größer als 525.601 Minuten ist (1 Jahr).
UseHostingIdentity Ein boolean Lese-/Schreibwert. true wenn die Windows-Authentifizierung und die Hostprozessidentität (entweder ASP.NET oder eine Windows-Dienstidentität) für Remoteverbindungen aktiviert sind; false wenn der Sitzungsstatus den Identitätswechsel des Clients verwendet, wenn er verfügbar ist. Der Standardwert ist true. Hinweis: Diese Einstellung vereinfacht die Verwaltung der integrierten Windows-Authentifizierung, indem Datenbankzugriff nur auf den ASP.NET Arbeitsprozess oder die Anwendungsidentität gewährt wird und nicht auf die gesamte Domäne oder eine Gruppe von Domänenbenutzern.

Unterklassen

Diese Klasse enthält keine Unterklassen.

Hinweise

Wenn ein neuer Client mit der Interaktion mit einer Webanwendung beginnt, wird eine Sitzungs-ID ausgegeben und allen nachfolgenden Anforderungen desselben Clients während der Gültigkeit der Sitzung zugeordnet. Diese ID wird verwendet, um den serverseitigen Zustand beizubehalten, der der Clientsitzung über Anforderungen hinweg zugeordnet ist. Die SessionStateSection Klasse steuert, wie die ASP.NET Anwendung diese Zuordnung im Namen jedes Clients herstellt und verwaltet.

In der folgenden Tabelle werden die verschiedenen möglichen Werte für die Cookieless Eigenschaft angezeigt. Der Standardwert ist 1 (UseCookies).

Wert Schlüsselwort Beschreibung
0 UseUri Die Sitzungs-ID wird als Abfragezeichenfolge in die URI-Anforderung (Uniform Resource Identifier) eingebettet, und der URI wird an die ursprünglich angeforderte URL umgeleitet. Die geänderte URI-Anforderung wird für die Dauer der Sitzung verwendet, sodass kein Cookie erforderlich ist. Hinweis: Wenn Sie den UseUri Modus verwenden, sollten Sie die RegenerateExpiredSessionId Eigenschaft auf true setzen. Auf diese Weise kann ein Webserver Token ablaufen lassen und dann neu generieren, wodurch potenzielle Angreifer und Angreiferinnen weniger Zeit haben, ein Cookie abzufangen und sich Zugriff auf Webserverinhalte zu verschaffen. Sie sollten auch erwägen, die Timeout Eigenschaft auf weniger als die 20-Minuten-Standardeinstellung zu ändern.
1 UseCookies Die Sitzungs-ID wird in einem HTTP-Cookie auf dem Client für die Dauer der Verbindung eines Benutzers zu einer Website gespeichert. Cookies werden in den HTTP-Headern aller Anforderungen zwischen einem Client und Webserver übergeben und sind effizienter im Sitzungsstatus der Nachverfolgung, da sie keine Umleitung erfordern. Darüber hinaus behalten sie den Status bei, wenn ein Benutzer eine Website verlässt, um eine andere zu besuchen, und dann zur ursprünglichen Website zurückkehrt. Hinweis: Erwägen Sie, die Timeout Eigenschaft auf weniger als die 20-Minuten-Standardeinstellung zu ändern, sodass ein potenzieller Angreifer weniger Zeit hat, ein Cookie zu erfassen und Zugriff auf Websiteinhalte zu erhalten.
2 AutoDetect Die Sitzungs-ID wird in einem HTTP-Cookie auf dem Client erst gespeichert, nachdem ein Handshake mit dem Browser bestätigt hat, dass ein Cookie gespeichert werden kann. Hinweis: Wenn Sie den AutoDetect Modus verwenden, sollten Sie die RegenerateExpiredSessionId Eigenschaft auf true setzen. Auf diese Weise kann ein Webserver Token ablaufen lassen und dann neu generieren, wodurch potenzielle Angreifer und Angreiferinnen weniger Zeit haben, ein Cookie abzufangen und sich Zugriff auf Webserverinhalte zu verschaffen. Sie sollten auch erwägen, die Timeout Eigenschaft auf weniger als die 20-Minuten-Standardeinstellung zu ändern.
3 UseDeviceProfile Die Sitzungs-ID wird in einem HTTP-Cookie auf dem Client gespeichert, wenn das Clientgeräteprofil Cookies unterstützt; andernfalls werden keine Cookies verwendet. Wenn das Geräteprofil Cookies unterstützt, werden sie auch dann verwendet, wenn der Benutzer die Cookie-Unterstützung deaktiviert hat. Verwenden Sie diese Einstellung, um sicherzustellen, dass IDs ohne Cookies nur für Clients verwendet werden, die sie erfordern (z. B. mobile Browser). Hinweis: Wenn Sie den UseDeviceProfile Modus verwenden, sollten Sie die RegenerateExpiredSessionId Eigenschaft auf true setzen. Auf diese Weise kann ein Webserver Token ablaufen lassen und dann neu generieren, wodurch potenzielle Angreifer und Angreiferinnen weniger Zeit haben, ein Cookie abzufangen und sich Zugriff auf Webserverinhalte zu verschaffen. Sie sollten auch erwägen, die Timeout Eigenschaft auf weniger als die 20-Minuten-Standardeinstellung zu ändern.

In der folgenden Tabelle werden die verschiedenen möglichen Werte für die Mode Eigenschaft angezeigt. Der Standardwert ist 1 (InProc).

Wert Schlüsselwort Beschreibung
0 Off Der Sitzungszustand ist deaktiviert.
1 InProc Der Sitzungszustand wird für eine ASP.NET Anwendung im Arbeitsprozess gespeichert, in dem die Anwendung ausgeführt wird.

Der In-Process-Sitzungszustand ist der schnellste integrierte Speichermodus des Zustands. Wenn Sie jedoch mehr Daten in einer Sitzung speichern, verbrauchen Sie mehr Webserverspeicher, was die Leistung beeinträchtigen kann.

Daten zum In-Process-Sitzungsstatus gehen verloren, wenn der Arbeitsprozess erneut ausgeführt wird. Wenn Ihre ASP.NET Anwendungen Sitzungsstatusdaten beibehalten müssen, und die Geschwindigkeit des Datenzugriffs kein Hauptanliegen ist, sollten Sie in Erwägung ziehen, einen Modus außerhalb des Prozesssitzungszustands zum Speichern der Daten zu verwenden.

Der In-Process-Sitzungszustand kann nicht in einer Webfarm ohne ein Sitzungs-ID-Affinitätsschema verwendet werden, das garantiert, dass alle Anforderungen mit einer bestimmten Sitzungs-ID an denselben Webserver weitergeleitet werden. Hinweis: Der ASP.NET-Zustandsdienst („Aspnet_state.exe“) muss ausgeführt werden, damit der In-Process-Sitzungszustand funktioniert. Dieser Dienst ist mit ASP.NET installiert und befindet sich standardmäßig unter [laufwerk:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Dieser Dienst ist standardmäßig für den manuellen Start konfiguriert. Sie müssen das Startverhalten in „Automatisch“ ändern.
2 StateServer Der Sitzungszustand verwendet den prozessunabhängigen ASP.NET-Statusdienst zum Speichern von Statusinformationen. Der Vorteil dieser Konfiguration besteht darin, dass der Sitzungszustand beibehalten wird, wenn der Arbeitsprozess der Anwendung wiederverwendet wird. Wenn Sie diese Einstellung verwenden, müssen Sie eine Verbindungszeichenfolge in der StateConnectionString Eigenschaft angeben.
3 SQLServer Der Sitzungszustand verwendet eine prozessunabhängige SQL Server-Datenbank zum Speichern von Statusinformationen. Der Vorteil dieser Konfiguration besteht darin, dass der Sitzungsstatus erhalten bleibt, wenn der Arbeitsprozess der Anwendung wiederverwendet wird oder wenn entweder der ASP.NET-Statusdienst oder der Webserver ausfällt. Wenn Sie diese Einstellung verwenden, müssen Sie eine Verbindungszeichenfolge in der SqlConnectionString Eigenschaft angeben. Hinweis: Um den SQLServeR-Sitzungszustandsmodus zu verwenden, müssen Sie das InstallSqlState.sql SQL-Skript (das in [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber als Teil der standardmäßigen .NET Framework-Installation installiert ist) auf dem Computer ausführen, auf dem SQL Server ausgeführt wird, der den Sitzungsstatus speichert. Dadurch wird eine Datenbank namens ASPState mit neuen gespeicherten Prozeduren erstellt und neue ASPStateTempApplications- und ASPStateTempSessions-Tabellen in der TempDB-Datenbank erstellt.
4 Custom Der Sitzungszustand verwendet einen benutzerdefinierten Datenspeicher zum Speichern von Sitzungsstatusinformationen. Wenn Sie diese Einstellung verwenden, müssen Sie den Namen des benutzerdefinierten Anbieters in der CustomProvider Eigenschaft angeben.

Vererbungshierarchie

ConfigurationSection

ConfigurationSectionWithCollection

SessionStateSection

Anforderungen

type Beschreibung
Client - IIS 7.0 unter Windows Vista.
- IIS 7.5 unter Windows 7
- IIS 8.0 unter Windows 8
- IIS 10.0 unter Windows 10
Server - IIS 7.0 unter Windows Server 2008
- IIS 7.5 unter Windows Server 2008 R2
IIS 8.0 auf Windows Server 2012
- IIS 8.5 unter Windows Server 2012 R2
- IIS 10.0 auf Windows Server 2016
Produkt - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0
MOF-Datei WebAdministration.mof

Weitere Informationen

System.Web.Configuration.SystemWebSectionGroup.SessionState
System.Web.SessionState.SessionStateModeConfigurationSectionWithCollection Class
ProviderSettings-Klasse
Schnelle, skalierbare und sichere Sitzungsstatusverwaltung für Ihre Webanwendungen