SessionStateStoreProviderBase.GetItemExclusive 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從會話資料儲存庫回傳唯讀會話狀態資料。
public:
abstract System::Web::SessionState::SessionStateStoreData ^ GetItemExclusive(System::Web::HttpContext ^ context, System::String ^ id, [Runtime::InteropServices::Out] bool % locked, [Runtime::InteropServices::Out] TimeSpan % lockAge, [Runtime::InteropServices::Out] System::Object ^ % lockId, [Runtime::InteropServices::Out] System::Web::SessionState::SessionStateActions % actions);
public abstract System.Web.SessionState.SessionStateStoreData GetItemExclusive(System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItemExclusive : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItemExclusive (context As HttpContext, id As String, ByRef locked As Boolean, ByRef lockAge As TimeSpan, ByRef lockId As Object, ByRef actions As SessionStateActions) As SessionStateStoreData
參數
- context
- HttpContext
目前 HttpContext 的請求。
- locked
- Boolean
當此方法回傳時,包含一個布林值,若成功取得鎖,則設定為;true否則,。 false
- lockId
- Object
當此方法回傳時,包含一個物件,該物件被設定為當前請求的鎖識別碼。 關於鎖識別碼的詳細資訊,請參見類別摘要中的 SessionStateStoreProviderBase 「鎖定 Session-Store 資料」。
- actions
- SessionStateActions
當此方法回傳時,包含 SessionStateActions 其中一個值,表示目前會話是否為未初始化、無 Cookie 的會話。
傳回
SessionStateStoreData A 裡面有會話值和來自會話資料儲存的資訊。
範例
關於會話狀態儲存提供者實作的範例,請參見 實作 Session-State 儲存提供者。
備註
物件會在SessionStateModule請求開始時、事件發生時GetItemExclusive呼叫該AcquireRequestState方法,當屬性EnableSessionState設定為 true,這是預設值。 若屬性 EnableSessionState 設為 ReadOnly,物件 SessionStateModule 則會呼叫該 GetItem 方法。
該 GetItemExclusive 方法回傳 SessionStateStoreData 一個包含資料儲存區會話資訊的物件,更新儲存資料的到期日,並在請求期間將會話項目資料鎖定在資料庫。 若資料儲存中找不到會話項目資料, GetItemExclusive 該方法將參數設 lockedout 為 false 並回傳 null。 這會使 SessionStateModule 物件呼叫 CreateNewStoreData 該方法,在資料儲存中建立新的會話項目。 若在資料儲存庫找到會話項目資料但資料被鎖定, GetItemExclusive 方法會將參數設 lockedout 為 true,將參數設 lockAgeout 為當前日期與時間減去項目被鎖定的日期與時間(從資料儲存庫取得),將參數設 lockIdout 為從資料庫取得的鎖定識別碼, 並返回 null。 這會導致 SessionStateModule 物件在半秒後再次呼叫該 GetItemExclusive 方法,試圖取得會話項目資訊並鎖定資料。 如果參數設定的值lockAgeout超過該ExecutionTimeout值,則呼叫SessionStateModuleReleaseItemExclusive該方法以解除對會話項目資料的鎖定,然後再次呼叫該GetItemExclusive方法。
actionFlags當 cookieless 和 regenerateExpiredSessionId 屬性都設為 true時,該參數會被使用。 設定 actionFlags 為 的 InitializeItem 值表示會話資料儲存中的項目為需要初始化的新會話。 會話資料儲存中未初始化的項目是透過呼叫 CreateUninitializedItem 方法產生的。 如果會話資料儲存中的項目不是未初始化的項目, actionFlags 參數將設為零。
支援無 Cookie 會話的自訂會話狀態儲存實作者,應將參數設 actionFlagsout 為目前項目會話資料儲存回傳的值。 如果 actionFlags 請求的會話儲存項目的參數值等 InitializeItem 於列舉值,則 GetItemExclusive 該方法在設定 actionFlagsout 參數後,應該將資料儲存中的值設為零。