Udostępnij za pośrednictwem


SessionStateStoreProviderBase.CreateUninitializedItem Metoda

Definicja

Dodaje nowy element stanu sesji do magazynu danych.

public:
 abstract void CreateUninitializedItem(System::Web::HttpContext ^ context, System::String ^ id, int timeout);
public abstract void CreateUninitializedItem (System.Web.HttpContext context, string id, int timeout);
abstract member CreateUninitializedItem : System.Web.HttpContext * string * int -> unit
Public MustOverride Sub CreateUninitializedItem (context As HttpContext, id As String, timeout As Integer)

Parametry

context
HttpContext

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

id
String

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

timeout
Int32

Sesja Timeout bieżącego żądania.

Przykłady

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

Uwagi

Metoda CreateUninitializedItem jest używana z sesjami, gdy cookieless atrybuty i regenerateExpiredSessionId są zarówno true. Po ustawieniu parametru regenerateExpiredSessionId attributetrueSessionStateModule powoduje wygenerowanie nowej SessionID wartości przez obiekt po napotkaniu wygasłej SessionID wartości.

Proces generowania nowej SessionID wartości wymaga przekierowania przeglądarki do adresu URL zawierającego nowo wygenerowaną SessionID wartość. Metoda jest wywoływana CreateUninitializedItem podczas początkowego żądania, które zawiera wygasłą SessionID wartość. SessionStateModule Gdy obiekt uzyska nową SessionID wartość, aby zastąpić wygasłą wartość, wywołuje CreateUninitializedItem metodę w celu dodania niezainicjowanego wpisu do magazynu danych stanu sesji. Przeglądarka jest następnie przekierowywana do adresu URL zawierającego nowo wygenerowaną SessionID wartość. Istnienie niezainicjowanego wpisu w magazynie danych sesji gwarantuje, że przekierowane żądanie zawierające nowo wygenerowaną SessionID wartość nie jest mylone z żądaniem wygasłej sesji i jest zamiast tego traktowane jako nowa sesja.

Niezainicjowany wpis w magazynie danych sesji jest skojarzony z nowo wygenerowaną SessionID wartością i zawiera tylko wartości domyślne, w tym datę i godzinę wygaśnięcia oraz wartość odpowiadającą parametrowi actionFlagsGetItem metod i GetItemExclusive . Niezainicjowany wpis w magazynie stanu sesji powinien zawierać wartość równą actionFlagsInitializeItem wartości wyliczenia. Ta wartość jest przekazywana do SessionStateModule obiektu przez GetItem metody i GetItemExclusive i i informuje SessionStateModule obiekt, że bieżąca sesja jest nową, ale niezainicjowaną sesją. Następnie SessionStateModule obiekt zainicjuje nową sesję i zgłosi Session_OnStart zdarzenie.

Aby uzyskać więcej informacji na temat sesji bez plików cookie, zobacz IsCookieless właściwość .

Dotyczy

Zobacz też