SessionStateStoreProviderBase.CreateUninitializedItem 方法

定义

将新的会话状态项添加到数据存储区中。

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

id
String

当前请求的 SessionID

timeout
Int32

当前请求的会话 Timeout

示例

有关会话状态存储提供程序实现的示例,请参阅 实现 Session-State 存储提供程序

注解

CreateUninitializedItemcookieless 和属性均为时,方法与会话一起使用 regenerateExpiredSessionId trueregenerateExpiredSessionId attribute如果设置为,则在 true SessionStateModule SessionID 遇到过期值时使对象生成新值 SessionID

生成新值的过程 SessionID 需要将浏览器重定向到包含新生成的值的 URL SessionIDCreateUninitializedItem方法在包含过期值的初始请求期间调用 SessionID 。 在 SessionStateModule 对象获取 SessionID 用于替换过期值的新值后,它会调用 CreateUninitializedItem 方法,将未初始化的项添加到会话状态数据存储区。 然后,浏览器将重定向到包含新生成的 SessionID 值的 URL。 会话数据存储中的未初始化条目的存在确保了包含新生成的值的重定向请求 SessionID 不会被误认为已过期会话的请求,而是被视为新会话。

会话数据存储区中未初始化的条目与新生成的值相关联, SessionID 并且仅包含默认值,包括到期日期和时间以及与和方法的参数相对应的值 actionFlags GetItem GetItemExclusive 。 会话状态存储中的未初始化条目应包含 actionFlags 等于 InitializeItem 枚举值的值。 此值 SessionStateModule 通过和方法传递给对象 GetItem GetItemExclusive ,并通知 SessionStateModule 对象当前会话是新的、未初始化的会话。 SessionStateModule然后,对象将初始化新会话并引发 Session_OnStart 事件。

有关无 cookie 会话的详细信息,请参阅 IsCookieless 属性。

适用于

另请参阅