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 “锁定 Session-Store 数据”。
- actions
- SessionStateActions
此方法返回时,包含其中 SessionStateActions 一个值,指示当前会话是否为未初始化的无 Cookie 会话。
返回
SessionStateStoreData使用会话数据存储中的会话值和信息进行填充。
示例
有关会话状态存储提供程序实现的示例,请参阅 “实现 Session-State 存储提供程序”。
注解
当属性设置为SessionStateModule默认值时GetItemExclusive,AcquireRequestState对象EnableSessionState在请求开始时调用true该方法。
EnableSessionState如果该属性设置为ReadOnly,则对象SessionStateModule将改为调用该方法GetItem。
该方法 GetItemExclusive 返回一个 SessionStateStoreData 使用数据存储中的会话信息填充的对象,更新存储数据的到期日期,并在请求期间锁定数据存储中的会话项数据。 如果在数据存储中找不到会话项数据,该方法 GetItemExclusive 将参数 lockedout 设置为 false 并返回 null。 这会导致 SessionStateModule 对象调用 CreateNewStoreData 方法以在数据存储中创建新的会话项。 如果在数据存储中找到会话项数据,但数据被锁定,该方法 GetItemExclusive 将 lockedout 参数设置为 true,将 lockAgeout 参数设置为当前日期和时间减去锁定项(从数据存储检索的日期和时间),将 lockIdout 参数设置为从数据存储检索的锁定标识符, 并返回 null。 这会导致 SessionStateModule 对象在半秒间隔后再次调用 GetItemExclusive 该方法,以尝试检索会话项信息并获取数据锁。 如果参数设置为超出值的值lockAgeout,则ExecutionTimeout调用SessionStateModule该方法以清除会话项数据的锁,然后再次调用该方法ReleaseItemExclusive。GetItemExclusive
actionFlags当cookieless参数和regenerateExpiredSessionId属性都设置为true时使用。 设置为 actionFlags 指示会话数据存储中的条目是需要初始化的新会话的值 InitializeItem 。 会话数据存储中的未初始化条目是通过调用 CreateUninitializedItem 该方法创建的。 如果会话数据存储中的项不是未初始化的项,则 actionFlags 参数将设置为零。
支持无 Cookie 会话的自定义会话状态存储实现者应将 actionFlagsout 参数设置为从当前项的会话数据存储返回的值。
actionFlags如果请求的会话存储项的参数值等于InitializeItem枚举值,则GetItemExclusive该方法应在设置actionFlagsout参数后将数据存储中的值设置为零。