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 存储提供程序”。
注解
当和regenerateExpiredSessionId属性都是true时cookieless,该方法CreateUninitializedItem与会话一起使用。 设置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 属性。