Sdílet prostřednictvím


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

HttpContext pro aktuální požadavek.

id
String

SessionID pro aktuální požadavek.

locked
Boolean

Pokud tato metoda vrátí, obsahuje logickou hodnotu, která je nastavena na true pokud je požadovaná položka relace uzamčena v úložišti dat relace; jinak 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

Pokud 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 třídy SessionStateStoreProviderBase.

actions
SessionStateActions

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

Návraty

SessionStateStoreData naplněné 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 Session-State zprostředkovatele úložiště.

Poznámky

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

Metoda GetItem vrátí objekt SessionStateStoreData naplněný informacemi relace 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, metoda GetItem nastaví parametr lockedout na false a vrátí null. To způsobí, že objekt SessionStateModule zavolá metodu CreateNewStoreData k 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čena, metoda GetItem nastaví parametr lockedout na true, nastaví parametr lockAgeout na aktuální datum a čas minus datum a čas, kdy byla položka uzamčena (která je načtena 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 objekt SessionStateModule znovu zavolá metodu GetItem po půlsekundovém intervalu, aby se pokusil načíst informace o relaci položky.

Pokud je hodnota parametru lockAgeout nastavena tak, aby překročila hodnotu ExecutionTimeout, pak objekt SessionStateModule volá metodu ReleaseItemExclusive vymazat zámek na datech položky relace a potom znovu zavolá metodu GetItem.

Parametr actionFlags se používá, když jsou cookieless i regenerateExpiredSessionId atributy nastaveny na true. Hodnota actionFlags nastavená 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, parametr actionFlags bude nastaven na nulu.

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

Platí pro

Viz také