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. regenerateExpiredSessionId attribute Ustawienie powoduje trueSessionStateModule 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 zawierającego wygasłą SessionID wartość. SessionStateModule Gdy obiekt uzyska nową SessionID wartość w celu zastąpienia wygasłej wartości, wywołuje CreateUninitializedItem metodę w celu dodania niezainicjowanego wpisu do magazynu danych stanu sesji. Następnie przeglądarka jest przekierowywana do adresu URL zawierającego nowo wygenerowaną SessionID wartość. Istnienie niezainicjowanego wpisu w magazynie danych sesji gwarantuje, że przekierowane żądanie zawierające nowo SessionID wygenerowaną wartość nie mylą się z żądaniem wygasłej sesji i jest 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ę wygaśnięcia i godzinę oraz wartość odpowiadającą actionFlags parametrowi GetItem metod i .GetItemExclusive Niezainicjowany wpis w magazynie stanów 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ż