SessionStateStoreProviderBase.GetItem Metoda

Definicja

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

public:
 abstract System::Web::SessionState::SessionStateStoreData ^ GetItem(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 GetItem (System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItem : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItem (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 zostanie zwrócona, zawiera wartość logiczną ustawioną na true wartość , jeśli żądany element sesji jest zablokowany w magazynie danych sesji; w przeciwnym razie false.

lockAge
TimeSpan

Gdy ta metoda zostanie zwrócona, zawiera TimeSpan obiekt ustawiony na czas blokady elementu w magazynie danych sesji.

lockId
Object

Gdy ta metoda zostanie zwrócona, zawiera obiekt 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 zostanie zwrócona, zawiera jedną z SessionStateActions wartości wskazujących, czy bieżąca sesja jest niezainicjowaną sesją bez plików cookie.

Zwraca

Wypełniony SessionStateStoreData 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ę GetItem na początku żądania, podczas AcquireRequestState zdarzenia, gdy EnableSessionState atrybut jest ustawiony na ReadOnly. EnableSessionState Jeśli atrybut jest ustawiony na true, SessionStateModule obiekt zamiast tego wywołuje metodę GetItemExclusive .

Metoda GetItem zwraca SessionStateStoreData obiekt wypełniony informacjami o sesji z magazynu danych i aktualizuje datę wygaśnięcia danych sesji. Jeśli w magazynie danych nie znaleziono danych elementu sesji, GetItem metoda ustawia lockedout parametr na false i zwraca wartość null. SessionStateModule Powoduje to wywołanie CreateNewStoreData metody przez obiekt w celu utworzenia nowego elementu sesji w magazynie danych.

Jeśli dane elementu sesji znajdują się w magazynie danych, ale dane są zablokowane, GetItem metoda ustawia lockedout parametr na wartość , ustawiaoutlockAgeparametr truena bieżącą datę i godzinę minus datę i godzinę zablokowania elementu (który jest pobierany z magazynu danych), ustawia lockIdout parametr na identyfikator blokady pobrany z magazynu danych, i zwraca wartość null. SessionStateModule Powoduje to ponowne wywołanie GetItem metody przez obiekt po pół sekundowym interwale próby pobrania informacji o elemencie sesji.

Jeśli wartość parametru lockAgeout jest ustawiona na przekroczenie ExecutionTimeout wartości, SessionStateModule obiekt wywołuje ReleaseItemExclusive metodę w celu wyczyszczenia blokady danych elementu sesji, a następnie wywoła GetItem metodę ponownie.

Parametr actionFlags jest używany, gdy atrybuty cookieless i regenerateExpiredSessionId są ustawione na true. Wartość ustawiona actionFlags na InitializeItem wartość wskazuje, że wpis w magazynie danych sesji to nowa sesja, 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 stanów 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, GetItem metoda powinna ustawić wartość w magazynie danych na zero po ustawieniu parametruactionFlagsout.

Dotyczy

Zobacz też