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