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

HttpSessionStateContainer クラス

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

現在の要求のセッション レベルの設定とセッション状態値を格納します。

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

Public Class HttpSessionStateContainer
    Implements IHttpSessionState
Dim instance As HttpSessionStateContainer
public class HttpSessionStateContainer : IHttpSessionState
public ref class HttpSessionStateContainer
 : IHttpSessionState
public class HttpSessionStateContainer implements
 IHttpSessionState
public class HttpSessionStateContainer implements
 IHttpSessionState
解説解説

ASP.NET は、複数の要求に対して一意のブラウザ セッションに関連付けられた情報を格納するためのセッション状態管理機能を提供します。キー名または数値インデックスによって参照する一連の値を格納できます。セッション値には、現在の HttpContext の Session プロパティまたは Page の Session プロパティを使用してアクセス可能な HttpSessionState クラスを使用してアクセスします。HttpSessionState クラスは、セッション状態コンテナを参照してセッション状態値とセッション レベルの設定にアクセスします。このコンテナは、HttpApplication のセッション状態モジュールによってセッション状態データを入力してから現在の要求の HttpContext に追加された IHttpSessionState インターフェイスの実装です。

HttpSessionState クラスは、セッションの設定および値をメモリで管理する HttpSessionStateContainer クラスを呼び出します。

HttpSessionStateContainer クラスは、IHttpSessionState インターフェイスの ASP.NET 実装です。HttpSessionStateContainer クラスは、アプリケーション コードから呼び出すためのものではありません。SessionStateModule をカスタムのセッション状態モジュールで置き換える場合は、HttpSessionStateContainer クラスを使用するか、または独自の IHttpSessionState インターフェイスの実装を提供します。

使用例使用例
.NET Framework のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
  System.Web.SessionState.HttpSessionStateContainer
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
HttpSessionStateContainer メンバ
System.Web.SessionState 名前空間
SessionStateUtility
その他の技術情報
ASP.NET のセッション状態

HttpSessionStateContainer コンストラクタ

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

HttpSessionStateContainer オブジェクトを新規作成し、指定された設定と値で初期化します。

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

Public Sub New ( _
    id As String, _
    sessionItems As ISessionStateItemCollection, _
    staticObjects As HttpStaticObjectsCollection, _
    timeout As Integer, _
    newSession As Boolean, _
    cookieMode As HttpCookieMode, _
    mode As SessionStateMode, _
    isReadonly As Boolean _
)
Dim id As String
Dim sessionItems As ISessionStateItemCollection
Dim staticObjects As HttpStaticObjectsCollection
Dim timeout As Integer
Dim newSession As Boolean
Dim cookieMode As HttpCookieMode
Dim mode As SessionStateMode
Dim isReadonly As Boolean

Dim instance As New HttpSessionStateContainer(id,
 sessionItems, staticObjects, timeout, newSession, cookieMode, mode, isReadonly)
public HttpSessionStateContainer (
    string id,
    ISessionStateItemCollection sessionItems,
    HttpStaticObjectsCollection staticObjects,
    int timeout,
    bool newSession,
    HttpCookieMode cookieMode,
    SessionStateMode mode,
    bool isReadonly
)
public:
HttpSessionStateContainer (
    String^ id, 
    ISessionStateItemCollection^ sessionItems, 
    HttpStaticObjectsCollection^ staticObjects, 
    int timeout, 
    bool newSession, 
    HttpCookieMode cookieMode, 
    SessionStateMode mode, 
    bool isReadonly
)
public HttpSessionStateContainer (
    String id, 
    ISessionStateItemCollection sessionItems, 
    HttpStaticObjectsCollection staticObjects, 
    int timeout, 
    boolean newSession, 
    HttpCookieMode cookieMode, 
    SessionStateMode mode, 
    boolean isReadonly
)
public function HttpSessionStateContainer (
    id : String, 
    sessionItems : ISessionStateItemCollection, 
    staticObjects : HttpStaticObjectsCollection, 
    timeout : int, 
    newSession : boolean, 
    cookieMode : HttpCookieMode, 
    mode : SessionStateMode, 
    isReadonly : boolean
)

パラメータ

id

新しいセッションのセッション識別子。null 参照 (Visual Basic では Nothing) の場合は、ArgumentException がスローされます。

sessionItems

新しいセッション状態プロバイダのセッション値を格納する ISessionStateItemCollection。

staticObjects

ASP.NET アプリケーションの Global.asax ファイルの <object Runat="Server" Scope="Session"/> タグによって宣言されるオブジェクトを指定する HttpStaticObjectsCollection。

timeout

セッション状態プロバイダがセッションを終了するまでに、要求間で許容される時間 (分単位)。

newSession

現在の要求でセッションが作成されたことを示す場合は true。それ以外の場合は false。

cookieMode

新しいセッション状態プロバイダの CookieMode。

mode

現在のセッション状態モードを指定する SessionStateMode 値の 1 つ。

isReadonly

セッションが読み取り専用の場合は true。それ以外の場合は false。

例外例外
例外の種類条件

ArgumentException

id が null 参照 (Visual Basic では Nothing) です。

使用例使用例

カスタムのセッション状態モジュールの AcquireRequestState イベント ハンドラのコード例を次に示します。このイベント ハンドラは、HttpSessionStateContainer オブジェクトに新規または既存のセッション情報を入力し、AddHttpSessionStateToContext メソッドを使用して現在の要求の HttpContext に追加します。カスタムのセッション状態モジュールの完全なコード例については、SessionStateUtility クラスの概要を参照してください。

'
' Event handler for HttpApplication.AcquireRequestState
'

Private Sub OnAcquireRequestState(source As
 Object, args As EventArgs)
  Dim app     As HttpApplication = CType(source,
 HttpApplication)
  Dim context As HttpContext     = app.Context
  Dim isNew   As Boolean
         = False

  pSessionData = Nothing

  pSessionID = pSessionIDManager.GetSessionID(context)
  
  If Not pSessionID Is Nothing
 Then      
    Try
      pHashtableLock.AcquireReaderLock(Int32.MaxValue)
      pSessionData = CType(pSessionItems(pSessionID), SessionItem)

      If Not pSessionData Is
 Nothing Then _
        pSessionData.Expires = DateTime.Now.AddMinutes(pTimeout)
    Finally
      pHashtableLock.ReleaseReaderLock()
    End Try
  Else
    Dim redirected, cookieAdded As Boolean

    pSessionID = pSessionIDManager.CreateSessionID(context)
    pSessionIDManager.SaveSessionID(context, pSessionID, redirected, cookieAdded)

    If redirected Then Return
  End If

  If pSessionData Is Nothing
 Then      
    ' Identify the session as a New session state instance. Create a
 New SessionItem
    ' and add it to the local Hashtable.

    isNew = True

    pSessionData = New SessionItem()

    pSessionData.Items         = New SessionStateItemCollection()
    pSessionData.StaticObjects = SessionStateUtility.GetSessionStaticObjects(context)
    pSessionData.Expires       = DateTime.Now.AddMinutes(pTimeout)

    Try
      pHashtableLock.AcquireWriterLock(Int32.MaxValue)
      pSessionItems(pSessionID) = pSessionData
    Finally
      pHashtableLock.ReleaseWriterLock()
    End Try
  End If
        
  ' Add the session data to the current HttpContext.
  SessionStateUtility.AddHttpSessionStateToContext(context, _
                   New HttpSessionStateContainer(pSessionID, _
                                                pSessionData.Items, _
                                                pSessionData.StaticObjects, _
                                                pTimeout, _
                                                isNew, _
                                                pCookieMode, _
                                                SessionStateMode.Custom, _
                                                False))

  ' Execute the Session_OnStart event for a New session.
  If isNew Then RaiseEvent
 Start(Me, EventArgs.Empty)
End Sub


'
' Event for Session_OnStart event in the Global.asax file.
'

Public Event Start As EventHandler
//
// Event handler for HttpApplication.AcquireRequestState
//

private void OnAcquireRequestState(object source,
 EventArgs args)
{
  HttpApplication app     = (HttpApplication)source;
  HttpContext     context = app.Context;
  bool            isNew   = false;

  pSessionData = null;

  pSessionID = pSessionIDManager.GetSessionID(context);
  
  if (pSessionID != null)
  {
    try
    {
      pHashtableLock.AcquireReaderLock(Int32.MaxValue);
      pSessionData = (SessionItem)pSessionItems[pSessionID];

      if (pSessionData != null)
        pSessionData.Expires = DateTime.Now.AddMinutes(pTimeout);
    }
    finally
    {
      pHashtableLock.ReleaseReaderLock();
    }
  }
  else
  {
    bool redirected, cookieAdded;

    pSessionID = pSessionIDManager.CreateSessionID(context);
    pSessionIDManager.SaveSessionID(context, pSessionID, out redirected, out cookieAdded);

    if (redirected)
      return;
  }

  if (pSessionData == null)
  {
    // Identify the session as a new session state instance. Create
 a new SessionItem
    // and add it to the local Hashtable.

    isNew = true;

    pSessionData = new SessionItem();

    pSessionData.Items         = new SessionStateItemCollection();
    pSessionData.StaticObjects = SessionStateUtility.GetSessionStaticObjects(context);
    pSessionData.Expires       = DateTime.Now.AddMinutes(pTimeout);

    try
    {
      pHashtableLock.AcquireWriterLock(Int32.MaxValue);
      pSessionItems[pSessionID] = pSessionData;
    }
    finally
    {
      pHashtableLock.ReleaseWriterLock();
    }
  }
        
  // Add the session data to the current HttpContext.
  SessionStateUtility.AddHttpSessionStateToContext(context,
                   new HttpSessionStateContainer(pSessionID,
                                                pSessionData.Items,
                                                pSessionData.StaticObjects,
                                                pTimeout,
                                                isNew,
                                                pCookieMode,
                                                SessionStateMode.Custom,
                                                false));

  // Execute the Session_OnStart event for a new session.
  if (isNew && Start != null)
  {
    Start(this, EventArgs.Empty);
  }
}

//
// Event for Session_OnStart event in the Global.asax file.
//

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

HttpSessionStateContainer プロパティ


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

  名前 説明
パブリック プロパティ CodePage 現在のセッションの文字セット識別子を取得または設定します。
パブリック プロパティ CookieMode アプリケーションが Cookie なしのセッション用に構成されているかどうかを示す値を取得します。
パブリック プロパティ Count セッション状態コレクション内の項目の数を取得します。
パブリック プロパティ IsAbandoned 現在のセッションが破棄されているかどうかを示す値を取得します。
パブリック プロパティ IsCookieless セッション ID を URL に埋め込むか、HTTP cookie に格納するかを示す値を取得します。
パブリック プロパティ IsNewSession 現在の要求でセッションが作成されたかどうかを示す値を取得します。
パブリック プロパティ IsReadOnly セッションが読み取り専用かどうかを示す値を取得します。
パブリック プロパティ IsSynchronized セッション状態値のコレクションへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。
パブリック プロパティ Item オーバーロードされます。 個別のセッション値を取得または設定します。
パブリック プロパティ Keys セッション状態のコレクションに格納されているすべての値のキーのコレクションを取得します。
パブリック プロパティ LCID 現在のセッションのロケール識別子 (LCID: locale identifier) を取得または設定します。
パブリック プロパティ Mode 現在のセッション状態モードを取得します。
パブリック プロパティ SessionID セッションの一意の識別子を取得します。
パブリック プロパティ StaticObjects ASP.NET アプリケーションの Global.asax ファイルの <object Runat="Server" Scope="Session"/> タグで宣言されているオブジェクトのコレクションを取得します。
パブリック プロパティ SyncRoot セッション状態値のコレクションへのアクセスの同期に使用できるオブジェクトを取得します。
パブリック プロパティ Timeout セッション状態プロバイダがセッションを終了するまでに、要求間で許容される時間 (分単位) を取得または設定します。
参照参照

関連項目

HttpSessionStateContainer クラス
System.Web.SessionState 名前空間
SessionStateUtility

その他の技術情報

ASP.NET のセッション状態

HttpSessionStateContainer メソッド


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

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Abandon 現在のセッションに破棄のマークを付けます。
パブリック メソッド Add 新しい項目をセッション状態に追加します。
パブリック メソッド Clear セッション状態のコレクションからすべての値とキーを削除します。
パブリック メソッド CopyTo セッション状態値のコレクションを 1 次元配列にコピーします。コピー操作は、指定した配列内のインデックスから始まります。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetEnumerator 現在のセッションのすべてのセッション状態変数名を読み出すために使用する列挙子を返します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Remove セッション状態のコレクションから項目を削除します。
パブリック メソッド RemoveAll すべてのセッション状態値を削除します。
パブリック メソッド RemoveAt セッション状態のコレクションの指定したインデックス位置にある項目を削除します。
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

HttpSessionStateContainer クラス
System.Web.SessionState 名前空間
SessionStateUtility

その他の技術情報

ASP.NET のセッション状態

HttpSessionStateContainer メンバ

現在の要求のセッション レベルの設定とセッション状態値を格納します。

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


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド HttpSessionStateContainer HttpSessionStateContainer オブジェクトを新規作成し、指定された設定と値で初期化します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ CodePage 現在のセッションの文字セット識別子を取得または設定します。
パブリック プロパティ CookieMode アプリケーションが Cookie なしのセッション用に構成されているかどうかを示す値を取得します。
パブリック プロパティ Count セッション状態コレクション内の項目の数を取得します。
パブリック プロパティ IsAbandoned 現在のセッションが破棄されているかどうかを示す値を取得します。
パブリック プロパティ IsCookieless セッション ID を URL に埋め込むか、HTTP cookie に格納するかを示す値を取得します。
パブリック プロパティ IsNewSession 現在の要求でセッションが作成されたかどうかを示す値を取得します。
パブリック プロパティ IsReadOnly セッションが読み取り専用かどうかを示す値を取得します。
パブリック プロパティ IsSynchronized セッション状態値のコレクションへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。
パブリック プロパティ Item オーバーロードされます。 個別のセッション値を取得または設定します。
パブリック プロパティ Keys セッション状態のコレクションに格納されているすべての値のキーのコレクションを取得します。
パブリック プロパティ LCID 現在のセッションのロケール識別子 (LCID: locale identifier) を取得または設定します。
パブリック プロパティ Mode 現在のセッション状態モードを取得します。
パブリック プロパティ SessionID セッションの一意の識別子を取得します。
パブリック プロパティ StaticObjects ASP.NET アプリケーションの Global.asax ファイルの <object Runat="Server" Scope="Session"/> タグで宣言されているオブジェクトのコレクションを取得します。
パブリック プロパティ SyncRoot セッション状態値のコレクションへのアクセスの同期に使用できるオブジェクトを取得します。
パブリック プロパティ Timeout セッション状態プロバイダがセッションを終了するまでに、要求間で許容される時間 (分単位) を取得または設定します。
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Abandon 現在のセッションに破棄のマークを付けます。
パブリック メソッド Add 新しい項目をセッション状態に追加します。
パブリック メソッド Clear セッション状態のコレクションからすべての値とキーを削除します。
パブリック メソッド CopyTo セッション状態値のコレクションを 1 次元配列にコピーします。コピー操作は、指定した配列内のインデックスから始まります。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetEnumerator 現在のセッションのすべてのセッション状態変数名を読み出すために使用する列挙子を返します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Remove セッション状態のコレクションから項目を削除します。
パブリック メソッド RemoveAll すべてのセッション状態値を削除します。
パブリック メソッド RemoveAt セッション状態のコレクションの指定したインデックス位置にある項目を削除します。
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

HttpSessionStateContainer クラス
System.Web.SessionState 名前空間
SessionStateUtility

その他の技術情報

ASP.NET のセッション状態



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「HttpSessionStateContainer」の関連用語

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

   

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



HttpSessionStateContainerのページの著作権

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

©2026 GRAS Group, Inc.RSS