通过


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

注解

当和regenerateExpiredSessionId属性都是truecookieless,该方法CreateUninitializedItem与会话一起使用。 设置regenerateExpiredSessionId attributetrueSessionStateModule对象在遇到过期SessionID值时生成新SessionID值。

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

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

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

适用于

另请参阅