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当 cookieless
和属性均为时,方法与会话一起使用 regenerateExpiredSessionId
true
。 regenerateExpiredSessionId attribute
如果设置为,则在 true
SessionStateModule SessionID 遇到过期值时使对象生成新值 SessionID 。
生成新值的过程 SessionID 需要将浏览器重定向到包含新生成的值的 URL SessionID 。 CreateUninitializedItem方法在包含过期值的初始请求期间调用 SessionID 。 在 SessionStateModule 对象获取 SessionID 用于替换过期值的新值后,它会调用 CreateUninitializedItem 方法,将未初始化的项添加到会话状态数据存储区。 然后,浏览器将重定向到包含新生成的 SessionID 值的 URL。 会话数据存储中的未初始化条目的存在确保了包含新生成的值的重定向请求 SessionID 不会被误认为已过期会话的请求,而是被视为新会话。
会话数据存储区中未初始化的条目与新生成的值相关联, SessionID 并且仅包含默认值,包括到期日期和时间以及与和方法的参数相对应的值 actionFlags
GetItem GetItemExclusive 。 会话状态存储中的未初始化条目应包含 actionFlags
等于 InitializeItem 枚举值的值。 此值 SessionStateModule 通过和方法传递给对象 GetItem GetItemExclusive ,并通知 SessionStateModule 对象当前会话是新的、未初始化的会话。 SessionStateModule然后,对象将初始化新会话并引发 Session_OnStart
事件。
有关无 cookie 会话的详细信息,请参阅 IsCookieless 属性。