Udostępnij za pośrednictwem


SessionStateStoreProviderBase.GetItemExclusive Metoda

Definicja

Zwraca dane stanu sesji tylko do odczytu z magazynu danych sesji.

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

Wartość HttpContext dla bieżącego żądania.

id
String

Wartość SessionID dla bieżącego żądania.

locked
Boolean

Gdy ta metoda zwraca wartość logiczną, która jest ustawiana na true wartość , jeśli blokada zostanie pomyślnie uzyskana; w przeciwnym razie falsewartość .

lockAge
TimeSpan

Gdy ta metoda zwraca wartość , zawiera TimeSpan obiekt ustawiony na czas, przez który element w magazynie danych sesji został zablokowany.

lockId
Object

Gdy ta metoda zwraca wartość , zawiera obiekt, który jest ustawiony na identyfikator blokady dla bieżącego żądania. Aby uzyskać szczegółowe informacje na temat identyfikatora blokady, zobacz "Blokowanie danych Session-Store" w podsumowaniu SessionStateStoreProviderBase klasy.

actions
SessionStateActions

Gdy ta metoda zwraca wartość , zawiera jedną z SessionStateActions wartości wskazujących, czy bieżąca sesja jest niezainicjowaną sesją bez plików cookie.

Zwraca

Element SessionStateStoreData wypełniony wartościami sesji i informacjami z magazynu danych sesji.

Przykłady

Aby zapoznać się z przykładem implementacji dostawcy magazynu stanów sesji, zobacz Implementowanie dostawcy magazynu Session-State.

Uwagi

Obiekt SessionStateModule wywołuje metodę GetItemExclusive na początku żądania, podczas AcquireRequestState zdarzenia, gdy EnableSessionState atrybut jest ustawiony na true, który jest domyślny. EnableSessionState Jeśli atrybut jest ustawiony na ReadOnly, SessionStateModule obiekt zamiast wywołuje metodę GetItem .

Metoda GetItemExclusive zwraca SessionStateStoreData obiekt wypełniony informacjami o sesji z magazynu danych, aktualizuje datę wygaśnięcia przechowywanych danych i blokuje dane elementu sesji w magazynie danych przez czas trwania żądania. Jeśli w magazynie danych nie znaleziono żadnych danych elementu sesji, GetItemExclusive metoda ustawia parametr na falselockedout i zwraca wartość .null SessionStateModule Powoduje to wywołanie CreateNewStoreData metody w celu utworzenia nowego elementu sesji w magazynie danych. Jeśli dane elementu sesji znajdują się w magazynie danych, ale dane są zablokowane, GetItemExclusive metoda ustawia lockedout parametr truena wartość , ustawia lockAgeout parametr na bieżącą datę i godzinę minus datę i godzinę, kiedy element został zablokowany (który jest pobierany z magazynu danych), ustawia lockIdout parametr na identyfikator blokady pobrany z magazynu danych, funkcja i zwraca wartość null. SessionStateModule Powoduje to, że obiekt ponownie wywoła metodę GetItemExclusive po przerwie pół sekundy, aby spróbować pobrać informacje o elemencie sesji i uzyskać blokadę danych. Jeśli wartość parametru lockAgeout jest ustawiona na wartość przekraczającą ExecutionTimeout wartość, metoda SessionStateModule wywołuje ReleaseItemExclusive metodę w celu wyczyszczenia blokady danych elementu sesji, a następnie wywołuje metodę GetItemExclusive ponownie.

Parametr actionFlags jest używany, gdy cookieless atrybuty i regenerateExpiredSessionId są ustawione na truewartość . Wartość ustawiona actionFlags na InitializeItem wskazuje, że wpis w magazynie danych sesji jest nową sesją, która wymaga inicjowania. Niezainicjowane wpisy w magazynie danych sesji są tworzone przez wywołanie CreateUninitializedItem metody . Jeśli element z magazynu danych sesji nie jest niezainicjowanym elementem, actionFlags parametr zostanie ustawiony na zero.

Niestandardowe implementacje magazynu stanu sesji, które obsługują sesje bez plików cookie, powinny ustawić actionFlagsout parametr na wartość zwróconą z magazynu danych sesji dla bieżącego elementu. actionFlags Jeśli wartość parametru żądanego elementu magazynu sesji jest równa InitializeItem wartości wyliczenia, GetItemExclusive metoda powinna ustawić wartość w magazynie danych na zero po ustawieniu parametruactionFlagsout.

Dotyczy

Zobacz też