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 存储提供程序

注解

CreateUninitializedItem当 和 regenerateExpiredSessionId 属性都true为 时, cookieless 方法与会话一起使用。 将 regenerateExpiredSessionId attribute 设置为 true 会导致对象在SessionStateModule遇到过期SessionID值时生成新SessionID值。

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

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

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

适用于

另请参阅