SessionStateStoreProviderBase.CreateUninitializedItem 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将新的会话状态项添加到数据存储区中。
public:
abstract void CreateUninitializedItem(System::Web::HttpContext ^ context, System::String ^ id, int timeout);
public abstract void CreateUninitializedItem (System.Web.HttpContext context, string id, int timeout);
abstract member CreateUninitializedItem : System.Web.HttpContext * string * int -> unit
Public MustOverride Sub CreateUninitializedItem (context As HttpContext, id As String, timeout As Integer)
参数
- context
- HttpContext
当前请求的 HttpContext。
示例
有关会话状态存储提供程序实现的示例,请参阅 实现 Session-State 存储提供程序。
注解
CreateUninitializedItem当 和 regenerateExpiredSessionId
属性都true
为 时, cookieless
方法与会话一起使用。 将 regenerateExpiredSessionId attribute
设置为 true
会导致对象在SessionStateModule遇到过期SessionID值时生成新SessionID值。
生成新 SessionID 值的过程需要将浏览器重定向到包含新生成的 SessionID 值的 URL。 在 CreateUninitializedItem 包含过期 SessionID 值的初始请求期间调用 方法。 对象 SessionStateModule 获取新 SessionID 值以替换过期值后,它会调用 CreateUninitializedItem 方法将未初始化的条目添加到会话状态数据存储。 然后,浏览器将重定向到包含新生成的 SessionID 值的 URL。 会话数据存储中存在未初始化的条目,可确保包含新生成的 SessionID 值的重定向请求不会误认为请求已过期会话,而是被视为新会话。
会话数据存储中的未初始化条目与新生成的SessionID值相关联,并且仅包含默认值,包括到期日期和时间以及与 actionFlags
和 GetItemExclusive 方法的参数GetItem对应的值。 会话状态存储中的未初始化条目应包含等于actionFlags
InitializeItem枚举值的值。 此值由 GetItem 和 GetItemExclusive 方法传递到 SessionStateModule 对象,并通知SessionStateModule对象当前会话是新的但未初始化的会话。 然后,对象 SessionStateModule 将初始化新会话并引发 Session_OnStart
事件。
有关无 Cookie 会话的详细信息,请参阅 IsCookieless 属性。