SessionStateStoreProviderBase.CreateUninitializedItem 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將新的工作階段狀態項目加入資料存放區。
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)
參數
- context
- HttpContext
目前要求的 HttpContext。
範例
如需會話狀態存放區提供者實作的範例,請參閱 實作 Session-State 存放區提供者。
備註
當 CreateUninitializedItem 和 regenerateExpiredSessionId
屬性同時true
為 時cookieless
,方法會與會話搭配使用。 設定 regenerateExpiredSessionId attribute
為 true
會導致 SessionStateModule 物件在遇到過期SessionID值時產生新的SessionID值。
產生新 SessionID 值的程式需要將瀏覽器重新導向至包含新產生 SessionID 值的 URL。 方法 CreateUninitializedItem 會在包含過期 SessionID 值的初始要求期間呼叫。 物件 SessionStateModule 取得新的 SessionID 值以取代過期的值之後,它會呼叫 CreateUninitializedItem 方法,將未初始化的專案新增至會話狀態數據存放區。 然後,瀏覽器會重新導向至包含新產生 SessionID 值的URL。 會話數據存放區中有未初始化的專案,可確保包含新產生 SessionID 值的重新導向要求對於過期會話的要求不小心,而是視為新的會話。
會話數據存放區中的未初始化專案與新產生的SessionID值相關聯,且只包含預設值,包括到期日期和時間,以及對應至 actionFlags
和 GetItemExclusive 方法參數GetItem的值。 會話狀態存放區中未初始化的項目應該包含 actionFlags
等於 InitializeItem 列舉值的值。 這個值會由 GetItem 和 GetItemExclusive 方法傳遞至 SessionStateModule 物件,並通知SessionStateModule物件目前的會話是新的但未初始化的會話。 然後 SessionStateModule 物件會初始化新的會話,並引發 Session_OnStart
事件。
如需無 Cookie 會話的詳細資訊,請參閱 IsCookieless 屬性。