SessionStateStoreProviderBase.GetItem Metoda

Definice

Vrátí data stavu relace jen pro čtení z úložiště dat relace.

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

Parametry

context
HttpContext

Hodnota HttpContext pro aktuální požadavek.

id
String

Hodnota SessionID pro aktuální požadavek.

locked
Boolean

Když tato metoda vrátí, obsahuje logickou hodnotu, která je nastavena natrue, pokud je požadovaná položka relace uzamčena v úložišti dat relace; v opačném případě . false

lockAge
TimeSpan

Když tato metoda vrátí, obsahuje TimeSpan objekt, který je nastaven na dobu, po kterou byla položka v úložišti dat relace uzamčena.

lockId
Object

Když tato metoda vrátí, obsahuje objekt, který je nastaven na identifikátor zámku pro aktuální požadavek. Podrobnosti o identifikátoru zámku najdete v části "Uzamčení Session-Store dat" v souhrnu SessionStateStoreProviderBase třídy.

actions
SessionStateActions

Když tato metoda vrátí, obsahuje jednu z SessionStateActions hodnot, které označují, zda aktuální relace je neinicializovaná relace bez souborů cookie.

Návraty

Naplněný SessionStateStoreData hodnotami relace a informacemi z úložiště dat relace.

Příklady

Příklad implementace zprostředkovatele úložiště stavu relace najdete v tématu Implementace poskytovatele úložiště Session-State.

Poznámky

Objekt SessionStateModule volá metodu GetItem na začátku požadavku, během AcquireRequestState události, když EnableSessionState je atribut nastaven na ReadOnly. EnableSessionState Pokud je atribut nastaven na true, SessionStateModule objekt místo toho volá metoduGetItemExclusive.

Metoda GetItem vrátí objekt naplněný SessionStateStoreData informacemi o relaci z úložiště dat a aktualizuje datum vypršení platnosti dat relace. Pokud v úložišti dat nejsou nalezena žádná data položky relace, GetItem metoda nastaví lockedout parametr na false a vrátí null. To způsobí, že SessionStateModule objekt zavolá metodu CreateNewStoreData pro vytvoření nové položky relace v úložišti dat.

Pokud jsou data položky relace nalezena v úložišti dat, ale data jsou uzamčená, GetItem metoda nastavíoutlockedparametr na true, nastaví lockAgeout parametr na aktuální datum a čas minus datum a čas, kdy byla položka uzamčena (která se načte z úložiště dat), nastaví lockIdout parametr na identifikátor zámku načtený z úložiště dat. a vrátí null. To způsobí, že SessionStateModule objekt zavolá metodu GetItem znovu po půlsekundovém intervalu, aby se pokusil načíst informace o položce relace.

Pokud hodnota, kterou lockAgeout parametr je nastaven na vyšší než ExecutionTimeout hodnotu, pak SessionStateModule objekt volá metodu ReleaseItemExclusive vymazat zámek na data položky relace, a pak volá metodu GetItem znovu.

Parametr se actionFlags používá, když jsou atributy i regenerateExpiredSessionIdcookieless nastaveny na truehodnotu . Hodnota nastavená actionFlags na InitializeItem označuje, že položka v úložišti dat relace je nová relace, která vyžaduje inicializaci. Neinicializované položky v úložišti dat relace jsou vytvořeny voláním CreateUninitializedItem metody. Pokud položka z úložiště dat relace není neinicializovaná položka, actionFlags parametr se nastaví na nulu.

Implementátory vlastního úložiště stavu relací, které podporují relace bez souborů cookie, by měly nastavit actionFlagsout parametr na hodnotu vrácenou z úložiště dat relace pro aktuální položku. Pokud se hodnota parametru actionFlags požadované položky úložiště relací rovná hodnotě InitializeItem výčtu GetItem , měla by metoda nastavit hodnotu v úložišti dat na nulu po nastavení parametru actionFlagsout .

Platí pro

Viz také