SessionStateStoreProviderBase.GetItem 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從工作階段資料存放區傳回唯讀工作階段狀態資料。
public:
abstract System::Web::SessionState::SessionStateStoreData ^ GetItem(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 GetItem (System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItem : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItem (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
這個方法傳回時,包含布林值 (Boolean),如果要求的工作階段項目鎖定在工作階段資料存放區,則該值會設定為 true
,否則會設定為 false
。
- lockId
- Object
這個方法傳回時,包含設定為目前要求之鎖定識別項的物件。 如需鎖定識別項的詳細資訊,請參閱 SessionStateStoreProviderBase 類別摘要中的<鎖定工作階段存放區資料>。
- actions
- SessionStateActions
這個方法傳回時,包含其中一個 SessionStateActions 值,指出目前的工作階段是否為未初始化之無 Cookie 的工作階段。
傳回
填入工作階段資料存放區之工作階段值和資訊的 SessionStateStoreData。
範例
如需會話狀態存放區提供者實作的範例,請參閱 實作 Session-State 存放區提供者。
備註
當 屬性SessionStateModule設定ReadOnly
為 時EnableSessionStateAcquireRequestState,物件GetItem會在要求開頭呼叫 方法。 EnableSessionState如果屬性設定為 true
,則SessionStateModule物件會改為呼叫 GetItemExclusive 方法。
方法 GetItem 會 SessionStateStoreData 從數據存放區傳回填入會話信息的物件,並更新會話數據的到期日。 如果在資料存放區中找不到工作階段項目資料, GetItem 此方法會將 locked
out
參數設定為 false
,並傳 null
回 。 這會導致 SessionStateModule 物件呼叫 CreateNewStoreData 方法,以在數據存放區中建立新的會話專案。
如果在數據存放區找到會話項目數據,但數據已鎖定,GetItem此方法會將 參數true
設定locked
out
為 ,並將 lockAge
out
參數設定為目前的日期和時間減去鎖定 (從數據存放區擷取的日期和時間,將 參數設定lockId
out
為從數據) 存放區擷取的鎖定標識符, 與會傳null
回 。 這會導致 SessionStateModule 物件在半秒間隔之後再次呼叫 GetItem 方法,以嘗試擷取會話項目資訊。
lockAge
out
如果參數設定為超過ExecutionTimeout值的值,則SessionStateModule物件會呼叫 ReleaseItemExclusive 方法以清除會話專案數據的鎖定,然後再次呼叫 GetItem 方法。
actionFlags
當和 regenerateExpiredSessionId
屬性都設定為 true
時cookieless
,會使用 參數。 設定 actionFlags
為的值 InitializeItem ,表示會話數據存放區中的專案是需要初始化的新會話。 會話數據存放區中的未初始化專案是由 方法的呼叫 CreateUninitializedItem 所建立。 如果會話數據存放區中的專案不是未初始化的專案,參數 actionFlags
將會設定為零。
支援無 Cookie 會話的自定義工作階段狀態存放區實作程式,應該將 參數設定 actionFlags
out
為目前專案的工作階段資料存放區所傳回的值。 actionFlags
如果要求的會話存放區項目參數值等於InitializeItem列舉值,GetItem則方法在設定actionFlags
out
參數之後,應該將數據存放區中的值設定為零。
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應