SessionStateStoreProviderBase.GetItemExclusive Methode

Definition

Gibt schreibgeschützte Sitzungsstatusdaten aus dem 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

Die HttpContext für die aktuelle Anforderung.

id
String

Die SessionID für die aktuelle Anforderung.

locked
Boolean

Wenn diese Methode zurückgegeben wird, enthält sie einen booleschen Wert, der festgelegt true wird, wenn eine Sperre erfolgreich abgerufen wird; falseandernfalls .

lockAge
TimeSpan

Wenn diese Methode zurückgegeben wird, enthält ein TimeSpan Objekt, das auf den Zeitraum festgelegt ist, in dem ein Element im Sitzungsdatenspeicher gesperrt wurde.

lockId
Object

Wenn diese Methode zurückgegeben wird, enthält ein Objekt, das auf den Sperrbezeichner für die aktuelle Anforderung festgelegt ist. Ausführliche Informationen zum Sperrbezeichner finden Sie unter "Sperren Session-Store Daten" in der SessionStateStoreProviderBase Klassenzusammenfassung.

actions
SessionStateActions

Wenn diese Methode zurückgegeben wird, enthält sie einen der SessionStateActions Werte, der angibt, ob die aktuelle Sitzung eine nicht initialisierte, cookielose Sitzung ist.

Gibt zurück

Ein SessionStateStoreData aufgefüllter Sitzungswert und Informationen aus dem Sitzungsdatenspeicher.

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 true", die Standardeinstellung ist, festgelegt ist. Wenn das EnableSessionState Attribut auf ReadOnly festgelegt 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, das Ablaufdatum der gespeicherten Daten aktualisiert und die Sitzungselementdaten für die Dauer der Anforderung am Datenspeicher gesperrt. Wenn keine Sitzungselementdaten im Datenspeicher gefunden werden, legt die GetItemExclusive Methode den lockedout Parameter auf false und gibt diese 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, aber die Daten gesperrt sind, legt die GetItemExclusive Methode den Parameter auf true, legt den lockAgeoutoutlockedParameter auf das aktuelle Datum und die Aktuelle Uhrzeit minus datum und uhrzeit, zu dem das Element gesperrt wurde (das aus dem Datenspeicher abgerufen wurde), legt den lockIdout Parameter auf den Sperrbezeichner fest, der aus dem Datenspeicher abgerufen wird, und gibt zurücknull. Dies bewirkt, dass das SessionStateModule Objekt die GetItemExclusive Methode nach einem halben Sekundenintervall erneut aufruft, um zu versuchen, die Sitzungselementinformationen abzurufen und eine Sperre für die Daten abzurufen. Wenn der Wert, für den der lockAgeout Parameter festgelegt ist, den ExecutionTimeout Wert überschreitet, ruft die SessionStateModuleReleaseItemExclusive 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 regenerateExpiredSessionId auf beide festgelegt truesind. Ein actionFlags Wert, InitializeItem der angibt, dass der Eintrag im Sitzungsdatenspeicher eine neue Sitzung ist, die Initialisierung erfordert. 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 Sitzungsstatusspeicherimplementierer, die cookielose Sitzungen unterstützen, sollten den actionFlagsout Parameter auf den wert festlegen, der aus dem Sitzungsdatenspeicher für das aktuelle Element zurückgegeben wird. Wenn der actionFlags Parameterwert für das angeforderte Sitzungsspeicherelement dem InitializeItem Enumerationswert entspricht, sollte die GetItemExclusive Methode den Wert im Datenspeicher nach dem Festlegen des actionFlagsout Parameters auf Null festlegen.

Gilt für:

Weitere Informationen