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
Hodnota HttpContext pro aktuální požadavek.
- locked
- Boolean
Když tato metoda vrátí, obsahuje logickou hodnotu, která je nastavena na true
, pokud je zámek úspěšně získán; 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 GetItemExclusive na začátku požadavku, během AcquireRequestState události, když EnableSessionState je atribut nastaven na true
, což je výchozí. EnableSessionState Pokud je atribut nastaven na ReadOnly
, SessionStateModule objekt místo toho volá metoduGetItem.
Metoda GetItemExclusive vrátí objekt naplněný SessionStateStoreData informacemi o relaci z úložiště dat, aktualizuje datum vypršení platnosti uložených dat a uzamkne data položek 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, GetItemExclusive metoda nastaví locked
out
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á, GetItemExclusive metoda nastavíout
locked
parametr na true
, nastaví lockAge
out
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í lockId
out
parametr na identifikátor zámku načtený z úložiště dat. a vrátí null
. To způsobí, SessionStateModule že objekt zavolá metodu GetItemExclusive znovu po půlsekundovém intervalu, aby se pokusil načíst informace o položce relace a získat zámek na data. Pokud hodnota, na kterou lockAge
out
je parametr nastaven, překročí ExecutionTimeout hodnotu, pak SessionStateModule zavolá metodu ReleaseItemExclusive vymazat zámek na data položky relace a pak znovu zavolá metodu GetItemExclusive .
Parametr se actionFlags
použije, když cookieless
jsou atributy a regenerateExpiredSessionId
nastaveny na true
hodnotu . 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 actionFlags
out
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 GetItemExclusive , měla by metoda nastavit hodnotu v úložišti dat na nulu po nastavení parametru actionFlags
out
.
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro