次の方法で共有


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 attributetrue設定すると、SessionStateModule有効期限が切SessionIDれた値が検出されたときにオブジェクトに新しいSessionID値が生成されます。

新しい SessionID 値を生成するプロセスでは、新しく生成された SessionID 値を含む URL にブラウザーをリダイレクトする必要があります。 メソッドは CreateUninitializedItem 、有効期限が切れた値を含む最初の要求中に呼び出されます SessionID 。 オブジェクトは、 SessionStateModule 期限切れの値を置き換える新しい SessionID 値を取得した後、 メソッドを CreateUninitializedItem 呼び出して、初期化されていないエントリをセッション状態データ ストアに追加します。 ブラウザーは、新しく生成 SessionID された値を含む URL にリダイレクトされます。 セッション データ ストアに初期化されていないエントリが存在すると、新しく生成 SessionID された値を含むリダイレクトされた要求が、期限切れのセッションの要求と間違われず、代わりに新しいセッションとして扱われます。

セッション データ ストア内の初期化されていないエントリは、新しく生成されたSessionID値に関連付けられます。これには、有効期限の日付と時刻、および メソッドの GetItemGetItemExclusive パラメーターにactionFlags対応する値など、既定値のみが含まれます。 セッション状態ストアの初期化されていないエントリには、列挙値と actionFlags 等しい値を InitializeItem 含める必要があります。 この値は、 メソッドと GetItemExclusive メソッドによって GetItem オブジェクトにSessionStateModule渡され、現在のセッションが新しいが初期化されていないセッションであることをオブジェクトに通知SessionStateModuleします。 SessionStateModuleその後、 オブジェクトは新しいセッションを初期化し、 イベントをSession_OnStart発生させます。

Cookie レス セッションの詳細については、 プロパティを IsCookieless 参照してください。

適用対象

こちらもご覧ください