SessionStateStoreProviderBaseとは? わかりやすく解説

SessionStateStoreProviderBase クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

データ ストアのセッション状態プロバイダに必要なメンバを定義します。

名前空間: System.Web.SessionState
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public MustInherit Class
 SessionStateStoreProviderBase
    Inherits ProviderBase
Dim instance As SessionStateStoreProviderBase
public abstract class SessionStateStoreProviderBase
 : ProviderBase
public ref class SessionStateStoreProviderBase
 abstract : public ProviderBase
public abstract class SessionStateStoreProviderBase
 extends ProviderBase
public abstract class SessionStateStoreProviderBase
 extends ProviderBase
解説解説

ASP.NET のセッション状態は、セッション状態ストア プロバイダを使用してデータ ストアのセッション データの読み取り/書き込みを行います。セッション状態ストア プロバイダは SessionStateStoreProviderBase 抽象クラスを継承するクラスで、データ ストア固有の実装によってメンバをオーバーライドします。セッション状態ストア プロバイダは、ASP.NET ページの処理中に、データ ストアと通信してセッション変数およびタイムアウト値などの関連するセッション情報を保存または取得するために、SessionStateModule クラスによって呼び出されます。

各 ASP.NET アプリケーションのセッション データは、それぞれの SessionID プロパティに対して個別に保存されます。ASP.NET アプリケーションは、セッション データを共有しません。

このトピックの例にあるように、sessionState 構成要素の mode 属性を Custom に設定し、customProvider 属性をカスタム プロバイダの名前に設定すると、ASP.NET アプリケーションにカスタムの SessionStateStoreProviderBase を実装できます。

セッション ストア データのロック

ASP.NET アプリケーションは、同時実行の要求に対する応答をサポートするためにマルチスレッド化されるため、同時に複数の要求が同じセッション情報にアクセスする可能性があります。フレームセットの複数のフレームがすべて同じアプリケーションにアクセスする場合を考慮してみます。フレームセットの各フレームに対応する個々の要求は、Web サーバー上の異なるスレッドで同時に実行できます。各フレーム ソースの ASP.NET ページがセッション状態変数にアクセスすると、セッション ストアに同時に複数のスレッドがアクセスすることになります。

セッション ストアにおけるデータの衝突およびセッション状態の予期しない動作を回避するには、SessionStateModule クラスおよび SessionStateStoreProviderBase クラスに、ASP.NET ページの実行期間中に特定のセッションに対してセッション ストアの項目を排他的にロックする機能を含めます。EnableSessionState 属性が ReadOnly になっている場合も、同じアプリケーションの他の ASP.NET ページはセッション ストアに書き込むことができるので、ストアのセッション データに対する読み取り専用の要求は、ロックされているデータが解放されるまで待機することになる可能性があります。

ロックは、要求の開始時に GetItemExclusive メソッドを呼び出す際にセッション ストア データに設定されます。要求が完了すると、ロックは SetAndReleaseItemExclusive メソッドの呼び出し時に解除されます。

SessionStateModule オブジェクトが GetItemExclusive メソッドまたは GetItem メソッドの呼び出し中にロックされたセッション データに遭遇すると、ロックが解除されるか、またはセッション データがロックされている時間が ExecutionTimeout プロパティの値を超えるまで、0.5 秒間隔でセッション データへの要求を繰り返します。実行時間がタイムアウト値を超えると、SessionStateModule オブジェクトは ReleaseItemExclusive メソッドを呼び出してセッション ストア データを解放し、その時点でセッション ストア データを要求します。

ロックされているセッション ストア データは、SetAndReleaseItemExclusive メソッドを現在の応答に対して呼び出す前に別のスレッドで ReleaseItemExclusive メソッドを呼び出して解放されていることがあるので、別のセッションによって既に解放されている変更済みのセッション状態ストア データの設定と解除を試みることもあります。このような状況を回避するために、GetItem メソッドおよび GetItemExclusive メソッドはロック識別子を返します。このロック識別子は、ロックされているセッション ストア データを変更するために各要求に含める必要があります。セッション ストア データは、データ ストアのロック識別子が SessionStateModule が提供するロック識別子と一致する場合のみ変更できます。

有効期限切れのセッション ストア データの削除
使用例使用例

セッション状態ストア プロバイダの実装の例については、「セッション状態ストア プロバイダの実装」を参照してください。

カスタム セッション状態ストア プロバイダを使用するように構成されている ASP.NET アプリケーションの Web.config ファイルのコード例を次に示します。

<configuration>
  <connectionStrings>
    <add name="OdbcSessionServices" connectionString="DSN=SessionState;" />
  </connectionStrings>

  <system.web>
    <sessionState 
      mode="Custom"
      customProvider="OdbcSessionProvider">
      <providers>
        <add name="OdbcSessionProvider"
             type="Samples.AspNet.Session.OdbcSessionStateStore"
             connectionStringName="OdbcSessionServices" />
      </providers>
    </sessionState>
  </system.web>
</configuration>
.NET Framework のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
   System.Configuration.Provider.ProviderBase
    System.Web.SessionState.SessionStateStoreProviderBase
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SessionStateStoreProviderBase メンバ
System.Web.SessionState 名前空間
その他の技術情報
ASP.NET のセッション状態

SessionStateStoreProviderBase コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

SessionStateStoreProviderBase クラスの新しいインスタンスを初期化します。

名前空間: System.Web.SessionState
アセンブリ: System.Web (system.web.dll 内)
構文構文

Dim instance As New SessionStateStoreProviderBase
protected SessionStateStoreProviderBase ()
protected:
SessionStateStoreProviderBase ()
protected SessionStateStoreProviderBase ()
protected function SessionStateStoreProviderBase
 ()
解説解説

SessionStateStoreProviderBase 抽象クラスを継承するクラスでは、コンストラクタを実装する必要はありません。SessionStateStoreProviderBase 実装の初期化値は、Initialize メソッド実装に渡されます。

使用例使用例
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SessionStateStoreProviderBase クラス
SessionStateStoreProviderBase メンバ
System.Web.SessionState 名前空間
その他の技術情報
ASP.NET のセッション状態

SessionStateStoreProviderBase プロパティ


パブリック プロパティパブリック プロパティ

参照参照

関連項目

SessionStateStoreProviderBase クラス
System.Web.SessionState 名前空間

その他の技術情報

ASP.NET のセッション状態

SessionStateStoreProviderBase メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CreateNewStoreData 現在の要求で使用する SessionStateStoreData オブジェクトを新規作成します。
パブリック メソッド CreateUninitializedItem 新しいセッション状態項目をデータ ストアに追加します。
パブリック メソッド Dispose SessionStateStoreProviderBase の実装によって使用されているすべてのリソースを解放します。
パブリック メソッド EndRequest 要求の最後に SessionStateModule オブジェクトによって呼び出されます。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetItem セッション データ ストアから読み取り専用のセッション状態データを返します。
パブリック メソッド GetItemExclusive セッション データ ストアから読み取り専用のセッション状態データを返します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド Initialize  プロバイダを初期化します。 ( ProviderBase から継承されます。)
パブリック メソッド InitializeRequest 要求ごとの初期化のために、SessionStateModule オブジェクトによって呼び出されます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ReleaseItemExclusive セッション データ ストアの項目のロックを解除します。
パブリック メソッド RemoveItem セッション データ ストアから項目データを削除します。
パブリック メソッド ResetItemTimeout セッション データ ストアの項目の有効期限の日時を更新します。
パブリック メソッド SetAndReleaseItemExclusive 現在の要求の値を使用してセッション状態データ ストアのセッション項目の情報を更新し、データのロックを解除します。
パブリック メソッド SetItemExpireCallback Global.asax ファイルに定義されている Session_OnEnd イベントの SessionStateItemExpireCallback デリゲートへの参照を設定します。
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SessionStateStoreProviderBase クラス
System.Web.SessionState 名前空間

その他の技術情報

ASP.NET のセッション状態

SessionStateStoreProviderBase メンバ

データ ストアのセッション状態プロバイダに必要なメンバを定義します。

SessionStateStoreProviderBase データ型で公開されるメンバを以下の表に示します。


プロテクト コンストラクタプロテクト コンストラクタ
  名前 説明
プロテクト メソッド SessionStateStoreProviderBase SessionStateStoreProviderBase クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CreateNewStoreData 現在の要求で使用する SessionStateStoreData オブジェクトを新規作成します。
パブリック メソッド CreateUninitializedItem 新しいセッション状態項目をデータ ストアに追加します。
パブリック メソッド Dispose SessionStateStoreProviderBase の実装によって使用されているすべてのリソースを解放します。
パブリック メソッド EndRequest 要求の最後に SessionStateModule オブジェクトによって呼び出されます。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetItem セッション データ ストアから読み取り専用のセッション状態データを返します。
パブリック メソッド GetItemExclusive セッション データ ストアから読み取り専用のセッション状態データを返します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド Initialize  プロバイダを初期化します。 (ProviderBase から継承されます。)
パブリック メソッド InitializeRequest 要求ごとの初期化のために、SessionStateModule オブジェクトによって呼び出されます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ReleaseItemExclusive セッション データ ストアの項目のロックを解除します。
パブリック メソッド RemoveItem セッション データ ストアから項目データを削除します。
パブリック メソッド ResetItemTimeout セッション データ ストアの項目の有効期限の日時を更新します。
パブリック メソッド SetAndReleaseItemExclusive 現在の要求の値を使用してセッション状態データ ストアのセッション項目の情報を更新し、データのロックを解除します。
パブリック メソッド SetItemExpireCallback Global.asax ファイルに定義されている Session_OnEnd イベントの SessionStateItemExpireCallback デリゲートへの参照を設定します。
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SessionStateStoreProviderBase クラス
System.Web.SessionState 名前空間

その他の技術情報

ASP.NET のセッション状態


このページでは「.NET Framework クラス ライブラリ リファレンス」からSessionStateStoreProviderBaseを検索した結果を表示しています。
Weblioに収録されているすべての辞書からSessionStateStoreProviderBaseを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からSessionStateStoreProviderBase を検索

英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SessionStateStoreProviderBase」の関連用語

SessionStateStoreProviderBaseのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SessionStateStoreProviderBaseのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS