HttpSessionStateContainer コンストラクタ
アセンブリ: 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 )


カスタムのセッション状態モジュールの 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;

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- HttpSessionStateContainer コンストラクタのページへのリンク