Freigeben über


SessionStateStoreProviderBase.GetItem Methode

Definition

Gibt schreibgeschützte Sitzungsstatusdaten aus dem Sitzungsdatenspeicher zurück.

public:
 abstract System::Web::SessionState::SessionStateStoreData ^ GetItem(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 GetItem (System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItem : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItem (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 auf true festgelegt ist, wenn das angeforderte Sitzungselement im Sitzungsdatenspeicher gesperrt ist; andernfalls false.

lockAge
TimeSpan

Wenn diese Methode zurückgegeben wird, enthält ein TimeSpan -Objekt, das auf die Zeitspanne festgelegt ist, die 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 mit Sitzungswerten und Informationen aus dem Sitzungsdatenspeicher aufgefüllt.

Beispiele

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

Hinweise

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

Die GetItem-Methode gibt ein SessionStateStoreData Objekt zurück, das mit Sitzungsinformationen aus dem Datenspeicher aufgefüllt wird, und aktualisiert das Ablaufdatum der Sitzungsdaten. Wenn keine Sitzungselementdaten im Datenspeicher gefunden werden, legt die GetItem-Methode den parameter lockedout auf false fest und gibt nullzurück. 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 GetItem-Methode den parameter lockedout auf truefest, legt den parameter lockAgeout auf das aktuelle Datum und die Uhrzeit minus datum und uhrzeit minus dem Datum und der Uhrzeit fest, zu der das Element gesperrt wurde (das aus dem Datenspeicher abgerufen wird), legt den lockIdout Parameter auf den Sperrbezeichner fest, der aus dem Datenspeicher abgerufen wird, und gibt nullzurück. Dies bewirkt, dass das SessionStateModule-Objekt die GetItem Methode nach einem halben Sekundenintervall erneut aufruft, um zu versuchen, die Sitzungselementinformationen abzurufen.

Wenn der Wert, den der parameter lockAgeout festgelegt ist, den ExecutionTimeout Wert überschreitet, ruft das SessionStateModule-Objekt die ReleaseItemExclusive Methode auf, um die Sperre für die Sitzungselementdaten zu löschen, und ruft dann die GetItem Methode erneut auf.

Der actionFlags-Parameter wird verwendet, wenn sowohl die attribute cookieless als auch regenerateExpiredSessionId auf truefestgelegt sind. Ein auf InitializeItem festgelegter actionFlags 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 parameter actionFlags auf Null festgelegt.

Benutzerdefinierte Session-State Store-Implementierungen, 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 wert des actionFlags Parameters für das angeforderte Sitzungsspeicherelement dem InitializeItem Enumerationswert entspricht, sollte die GetItem Methode den Wert im Datenspeicher nach dem Festlegen des actionFlagsout Parameters auf Null festlegen.

Gilt für:

Weitere Informationen