SessionStateStoreProviderBase.GetItem Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.
- 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 locked
out
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 locked
out
na true
, nastaví parametr lockAge
out
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í lockId
out
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 lockAge
out
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 actionFlags
out
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 actionFlags
out
.
Platí pro
Viz také
- přehled stavu relace ASP.NET