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 類別摘要中的<鎖定工作階段存放區資料>。
- actions
- SessionStateActions
這個方法傳回時,包含其中一個 SessionStateActions 值,指出目前的工作階段是否為未初始化之無 Cookie 的工作階段。
傳回
填入工作階段資料存放區之工作階段值和資訊的 SessionStateStoreData。
範例
如需會話狀態存放區提供者實作的範例,請參閱 實作Session-State存放區提供者。
備註
當 SessionStateModule 屬性設定為 時, AcquireRequestState 物件 GetItemExclusive 會在要求開頭呼叫 方法,當 EnableSessionState 屬性設定 true
為 時,即為預設值。 EnableSessionState如果 屬性設定為 ReadOnly
,則 SessionStateModule 物件會改為呼叫 GetItem 方法。
方法 GetItemExclusive 會 SessionStateStoreData 從資料存放區傳回填入會話資訊的物件、更新預存資料的到期日,並在要求期間鎖定資料存放區上的會話專案資料。 如果在資料存放區中找不到會話專案資料, GetItemExclusive 此方法會將 locked
out
參數設定為 false
,並傳 null
回 。 這會導致 SessionStateModule 物件呼叫 CreateNewStoreData 方法,以在資料存放區中建立新的會話專案。 如果在資料存放區找到會話專案資料,但資料已鎖定, GetItemExclusive 此方法會將 參數 true
設定 locked
out
為 ,並將 lockAge
out
參數設定為目前的日期和時間減去鎖定 (從資料存放區擷取的日期和時間,將 參數設定 lockId
out
為從資料) 存放區擷取的鎖定識別碼, 和 會傳 null
回 。 這會導致 SessionStateModule 物件在半秒間隔之後再次呼叫 GetItemExclusive 方法,以嘗試擷取會話專案資訊,並取得資料的鎖定。 lockAge
out
如果參數設定的值超過 ExecutionTimeout 值,則 呼叫 ReleaseItemExclusiveSessionStateModule 方法以清除會話專案資料的鎖定,然後再次呼叫 GetItemExclusive 方法。
actionFlags
當 和 regenerateExpiredSessionId
屬性都設定為 true
時 cookieless
,就會使用 參數。 設定 actionFlags
為 的值 InitializeItem ,表示會話資料存放區中的專案是需要初始化的新會話。 會話資料存放區中的未初始化專案是由 方法的呼叫 CreateUninitializedItem 所建立。 如果會話資料存放區中的專案不是未初始化的專案,參數 actionFlags
將會設定為零。
支援無 Cookie 會話的自訂會話狀態存放區實作程式,應該將 參數設定 actionFlags
out
為目前專案的會話資料存放區所傳回的值。 actionFlags
如果要求的會話存放區專案參數值等於 InitializeItem 列舉值, GetItemExclusive 則方法在設定 actionFlags
out
參數之後,應該將資料存放區中的值設定為零。
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應