SessionStateStoreProviderBase.GetItemExclusive Metoda

Definice

Vrátí data o 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

Pro HttpContext aktuální požadavek.

id
String

Pro SessionID 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; jinak false.

lockAge
TimeSpan

Když tato metoda vrátí, obsahuje TimeSpan objekt 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 je aktuální relace 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í hodnota. EnableSessionState Pokud je atribut nastaven na ReadOnly, SessionStateModule objekt místo toho volá metodu GetItem .

Metoda GetItemExclusive vrátí SessionStateStoreData objekt naplněný informacemi o relaci 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 se v úložišti dat nenajdou žádná data položky relace, GetItemExclusive metoda nastaví lockedout parametr na false a vrátí nullhodnotu . To způsobí, že SessionStateModule objekt zavolá metodu CreateNewStoreData k vytvoření nové položky relace v úložišti dat. Pokud se data položky relace nacházejí v úložišti dat, ale jsou uzamčená, GetItemExclusive metoda nastavíoutlockedparametr na true, nastaví lockAgeout 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í lockIdout parametr na identifikátor zámku načtený z úložiště dat. a vrátí null. To způsobí, že SessionStateModule 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 dat. Pokud hodnota, na kterou lockAgeout je parametr nastaven, překračuje ExecutionTimeout hodnotu, SessionStateModule zavolá metodu ReleaseItemExclusive pro vymazání zámku dat položky relace a pak znovu zavolá metodu GetItemExclusive .

Parametr se actionFlags používá, když cookieless jsou atributy a regenerateExpiredSessionId nastavené na truehodnotu . 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á, 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 actionFlagsout 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á InitializeItem hodnotě výčtu, GetItemExclusive pak by metoda měla nastavit hodnotu v úložišti dat na nulu po nastavení parametru actionFlagsout .

Platí pro

Viz také