Sdílet prostřednictvím


SessionStateStoreProviderBase.GetItemExclusive Metoda

Definice

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.

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 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 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 GetItemExclusive 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 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 lockAgeout 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 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 GetItemExclusive měla nastavit hodnotu v úložišti dat na nulu po nastavení parametru actionFlagsout.

Platí pro

Viz také