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
Aktuální HttpContext požadavek.
- locked
- Boolean
Pokud tato metoda vrátí, obsahuje logickou hodnotu, která je nastavena true , pokud je požadovaná položka relace uzamčena v úložišti dat relace; jinak , false.
- lockAge
- TimeSpan
Pokud 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 data" v souhrnu SessionStateStoreProviderBase třídy.
- actions
- SessionStateActions
Pokud 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 Store.
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 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, GetItem metoda nastaví lockedout parametr na false a vrátí null. To způsobí, že SessionStateModule objekt 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, GetItem metoda nastavílockedoutparametr na true, nastaví lockAgeout parametr 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 SessionStateModule objekt 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čil ExecutionTimeout hodnotu, pak SessionStateModule objekt volá metodu ReleaseItemExclusive vymazat zámek u dat položky relace a pak volá metodu GetItem znovu.
Parametr actionFlags se používá, pokud cookielessregenerateExpiredSessionId jsou oba atributy nastaveny na true. Hodnota nastavená actionFlags na InitializeItem indikaci, ž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 bude nastaven na nulu actionFlags .
Vlastní implementátory úložiště stavu relace, 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 pro požadovanou položku úložiště relací rovná InitializeItem hodnotě výčtu, GetItem měla by metoda nastavit hodnotu v úložišti dat na nulu po nastavení parametru actionFlagsout .