HttpSessionStateContainer コンストラクタとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > HttpSessionStateContainer コンストラクタの意味・解説 

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

idnull 参照 (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セッション状態



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「HttpSessionStateContainer コンストラクタ」の関連用語

HttpSessionStateContainer コンストラクタのお隣キーワード
検索ランキング

   

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



HttpSessionStateContainer コンストラクタのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS