共用方式為


SessionStateStoreProviderBase.CreateUninitializedItem 方法

定義

將新的工作階段狀態項目加入資料存放區。

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

id
String

目前要求的 SessionID

timeout
Int32

目前要求的工作階段 Timeout

範例

如需會話狀態存放區提供者實作的範例,請參閱 實作Session-State存放區提供者

備註

CreateUninitializedItemregenerateExpiredSessionId 屬性同時 true 為 時 cookieless ,方法會與會話搭配使用。 設定 regenerateExpiredSessionId attributetrue 會導致 SessionStateModule 物件在遇到過期 SessionID 值時產生新的 SessionID 值。

產生新 SessionID 值的程式需要將瀏覽器重新導向至包含新產生 SessionID 值的 URL。 方法 CreateUninitializedItem 會在包含過期 SessionID 值的初始要求期間呼叫。 物件 SessionStateModule 取得新的 SessionID 值以取代過期的值之後,它會呼叫 CreateUninitializedItem 方法,將未初始化的專案新增至會話狀態資料存放區。 然後,瀏覽器會重新導向至包含新產生 SessionID 值的 URL。 會話資料存放區中有未初始化的專案,可確保包含新產生 SessionID 值的重新導向要求對於過期會話的要求不小心,而是視為新的會話。

會話資料存放區中的未初始化專案與新產生的 SessionID 值相關聯,且只包含預設值,包括到期日期和時間,以及對應至 actionFlagsGetItemExclusive 方法參數 GetItem 的值。 會話狀態存放區中未初始化的專案應該包含 actionFlags 等於 InitializeItem 列舉值的值。 這個值會由 GetItemGetItemExclusive 方法傳遞至 SessionStateModule 物件,並通知 SessionStateModule 物件目前的會話是新的但未初始化的會話。 然後 SessionStateModule 物件會初始化新的會話,並引發 Session_OnStart 事件。

如需無 Cookie 會話的詳細資訊,請參閱 IsCookieless 屬性。

適用於

另請參閱