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
当此方法返回时,如果请求的会话项在会话数据存储区被锁定,请包含一个设置为 true
的布尔值;否则请包含一个设置为 false
的布尔值。
- lockId
- Object
当此方法返回时,请包含一个设置为当前请求的锁定标识符的对象。 有关锁定标识符的详细信息,请参见 SessionStateStoreProviderBase 类摘要中的“锁定会话存储区数据”。
- actions
- SessionStateActions
当此方法返回时,请包含 SessionStateActions 值之一,指示当前会话是否为未初始化的无 Cookie 会话。
返回
使用会话数据存储区中的会话值和信息填充的 SessionStateStoreData。
示例
有关会话状态存储提供程序实现的示例,请参阅 实现Session-State存储提供程序。
注解
在 SessionStateModule 事件期间AcquireRequestState,当 属性设置为 ReadOnly
时EnableSessionState,对象在请求开始时调用 GetItem 方法。 如果 特性 EnableSessionState 设置为 true
,则 SessionStateModule 对象将改为调用 GetItemExclusive 方法。
方法 GetItem 从数据存储返回一个 SessionStateStoreData 用会话信息填充的对象,并更新会话数据的到期日期。 如果在数据存储区中找不到会话项数据,则 GetItem 方法将 locked
out
参数设置为 false
并返回 null
。 这会导致 SessionStateModule 对象调用 CreateNewStoreData 方法以在数据存储区中创建新的会话项。
如果在数据存储区中找到了会话项数据,但数据被锁定,则 GetItem 方法将 参数设置为 locked
out
true
,将out
lockAge
参数设置为当前日期和时间减去从数据存储 () 检索的数据存储区中检索的项被锁定的日期和时间,并将 lockId
out
参数设置为从数据存储中检索到的锁标识符, 和 返回 null
。 这会导致对象在 SessionStateModule 半秒间隔后再次调用 GetItem 方法,以尝试检索会话项信息。
lockAge
out
如果参数设置为的值超过 ExecutionTimeout 该值,则 SessionStateModule 对象将调用 ReleaseItemExclusive 方法以清除会话项数据的锁定,然后再次调用 GetItem 方法。
当 actionFlags
和 regenerateExpiredSessionId
属性都cookieless
设置为 true
时,将使用 参数。 actionFlags
设置为 InitializeItem 的值指示会话数据存储中的条目是需要初始化的新会话。 会话数据存储中的未初始化条目是通过调用 CreateUninitializedItem 方法创建的。 如果会话数据存储中的项不是未初始化的项,则 actionFlags
参数将设置为零。
支持无 Cookie 会话的自定义会话状态存储实现程序应将 参数设置为 actionFlags
out
从当前项的会话数据存储返回的值。 actionFlags
如果请求的会话存储项的参数值等于InitializeItem枚举值,则 GetItem 方法应在设置 actionFlags
out
参数后将数据存储中的值设置为零。
适用于
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈