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