SessionStateStoreProviderBase.GetItemExclusive 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 ^ GetItemExclusive(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 GetItemExclusive (System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItemExclusive : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItemExclusive (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 zámek úspěšně získán; 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 GetItemExclusive na začátku požadavku během AcquireRequestState události, když je atribut EnableSessionState nastaven na true
, což je výchozí. Pokud je atribut EnableSessionState nastaven na ReadOnly
, SessionStateModule objekt místo toho volá GetItem metoda.
Metoda GetItemExclusive vrátí objekt SessionStateStoreData naplněný informacemi relace z úložiště dat, aktualizuje datum vypršení platnosti uložených dat a uzamkne data položky relace v úložišti dat po dobu trvání požadavku. Pokud v úložišti dat nejsou nalezena žádná data položky relace, metoda GetItemExclusive 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 GetItemExclusive 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 GetItemExclusive po půlsekundovém intervalu, aby se pokusil načíst informace o položce relace a získat zámek dat. Pokud je hodnota parametru lockAge
out
nastavena tak, aby překročila hodnotu ExecutionTimeout, pak SessionStateModule volá metodu ReleaseItemExclusive, aby se zámek u dat položky relace vymazaly a pak znovu volá metodu GetItemExclusive.
Parametr actionFlags
se používá, když jsou atributy cookieless
a regenerateExpiredSessionId
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 GetItemExclusive 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