SessionStateStoreProviderBase.GetItemExclusive Methode

Definition

Gibt schreibgeschützte Sitzungszustandsdaten vom Sitzungsdatenspeicher zurück.

public:
 abstract System::Web::SessionState::SessionStateStoreData ^ GetItemExclusive(System::Web::HttpContext ^ context, System::String ^ id, [Runtime::InteropServices::Out] bool % locked, [Runtime::InteropServices::Out] TimeSpan % lockAge, [Runtime::InteropServices::Out] System::Object ^ % lockId, [Runtime::InteropServices::Out] System::Web::SessionState::SessionStateActions % actions);
public abstract System.Web.SessionState.SessionStateStoreData GetItemExclusive (System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItemExclusive : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItemExclusive (context As HttpContext, id As String, ByRef locked As Boolean, ByRef lockAge As TimeSpan, ByRef lockId As Object, ByRef actions As SessionStateActions) As SessionStateStoreData

Parameter

context
HttpContext

Das HttpContext für die aktuelle Anforderung.

id
String

Das SessionID für die aktuelle Anforderung.

locked
Boolean

Diese Methode enthält bei der Rückgabe einen booleschen Wert, der auf true festgelegt ist, wenn eine Sperrung erfolgte, andernfalls auf false.

lockAge
TimeSpan

Diese Methode enthält bei der Rückgabe ein TimeSpan-Objekt, das auf die Zeitdauer festgelegt ist, für das ein Element im Sitzungsdatenspeicher bereits gesperrt ist.

lockId
Object

Diese Methode enthält bei der Rückgabe ein Objekt, das auf den Sperrbezeichner für die aktuelle Anforderung festgelegt ist. Weitere Informationen über Sperrbezeichner finden Sie unter "Sperren von Daten im Sitzungsspeicher" in der Zusammenfassung der SessionStateStoreProviderBase-Klasse.

actions
SessionStateActions

Diese Methode enthält bei der Rückgabe einen der SessionStateActions-Werte, der angibt, ob es sich bei der aktuellen Sitzung um eine nicht initialisierte Sitzung ohne Cookies handelt.

Gibt zurück

Ein mit Sitzungswerten und Informationen aus dem Sitzungsdatenspeicher gefülltes SessionStateStoreData.

Beispiele

Ein Beispiel für eine Implementierung eines Sitzungszustandsspeicheranbieters finden Sie unter Implementieren eines Session-State Store-Anbieters.

Hinweise

Das SessionStateModule -Objekt ruft die GetItemExclusive -Methode am Anfang einer Anforderung während des AcquireRequestState -Ereignisses auf, wenn das EnableSessionState Attribut auf truefestgelegt ist. Dies ist die Standardeinstellung. Wenn das EnableSessionState Attribut auf ReadOnlyfestgelegt ist, ruft das SessionStateModule -Objekt stattdessen die GetItem -Methode auf.

Die GetItemExclusive -Methode gibt ein SessionStateStoreData Objekt zurück, das mit Sitzungsinformationen aus dem Datenspeicher aufgefüllt wird, aktualisiert das Ablaufdatum der gespeicherten Daten und sperrt die Sitzungselementdaten im Datenspeicher für die Dauer der Anforderung. Wenn im Datenspeicher keine Sitzungselementdaten gefunden werden, legt die GetItemExclusive Methode den lockedout Parameter auf fest false und gibt zurück null. Dies bewirkt, dass das SessionStateModule -Objekt die CreateNewStoreData -Methode aufruft, um ein neues Sitzungselement im Datenspeicher zu erstellen. Wenn Sitzungselementdaten im Datenspeicher gefunden werden, die Daten jedoch gesperrt sind, legt die GetItemExclusive Methode den lockedout Parameter auf truefest, legt den lockAgeout Parameter auf das aktuelle Datum und die aktuelle Uhrzeit abzüglich des Datums und der Uhrzeit fest, zu dem das Element gesperrt wurde (das aus dem Datenspeicher abgerufen wird), legt den lockIdout Parameter auf den aus dem Datenspeicher abgerufenen Sperrbezeichner fest. und gibt zurück null. Dies bewirkt, dass das SessionStateModule Objekt die GetItemExclusive -Methode nach einem Intervall von einer halben Sekunde erneut aufruft, um zu versuchen, die Sitzungselementinformationen abzurufen und eine Sperre für die Daten zu erhalten. Wenn der Wert, auf den der lockAgeout Parameter festgelegt ist, den ExecutionTimeout Wert überschreitet, ruft die SessionStateModule - ReleaseItemExclusive Methode auf, um die Sperre für die Sitzungselementdaten zu löschen, und ruft dann die GetItemExclusive -Methode erneut auf.

Der actionFlags Parameter wird verwendet, wenn die cookieless Attribute und regenerateExpiredSessionId auf truefestgelegt sind. Ein actionFlags auf InitializeItem festgelegter Wert gibt an, dass der Eintrag im Sitzungsdatenspeicher eine neue Sitzung ist, die initialisiert werden muss. Nicht initialisierte Einträge im Sitzungsdatenspeicher werden durch einen Aufruf der CreateUninitializedItem -Methode erstellt. Wenn das Element aus dem Sitzungsdatenspeicher kein nicht initialisiertes Element ist, wird der actionFlags Parameter auf Null festgelegt.

Benutzerdefinierte Sitzungszustandsspeicherimplementierer, die cookielose Sitzungen unterstützen, sollten den actionFlagsout Parameter auf den Wert festlegen, der vom Sitzungsdatenspeicher für das aktuelle Element zurückgegeben wird. Wenn der actionFlags Parameterwert für das angeforderte Sitzungsspeicherelement gleich dem InitializeItem Enumerationswert ist, sollte die GetItemExclusive Methode den Wert im Datenspeicher nach dem Festlegen des actionFlagsout Parameters auf Null festlegen.

Gilt für:

Weitere Informationen