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 屬性。
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應