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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應