HttpSessionState クラス
アセンブリ: System.Web (system.web.dll 内)


ASP.NET は、複数の要求に対して一意のブラウザ セッションに関連付けられた情報を格納するためのセッション状態管理機能を提供します。格納できるのは、キー名または数値インデックスによって参照する値のコレクションです。セッション値およびその機能には、現在の HttpContext の Session プロパティまたは Page の Session プロパティを使用してアクセス可能な HttpSessionState クラスを使用してアクセスします。
セッション データは、一意の識別子を使用して特定のブラウザ セッションに関連付けられます。既定では、この識別子はブラウザの無期限のセッション Cookie に格納されますが、cookieless 属性を true に設定するか、またはアプリケーション構成の sessionState 要素の UseUri を設定して、セッション識別子を URL に格納するようにアプリケーションを構成することもできます。cookieless 属性の UseDeviceProfile の値を指定すると、ASP.NET はブラウザが Cookie をサポートしているかどうかを確認できます。cookieless 属性の AutoDetect の値を指定すると、ASP.NET はブラウザで Cookie が有効になっているかどうかも確認できます。UseDeviceProfile を指定したときに Cookie がサポートされている場合、または AutoDetect を指定したときに Cookie が有効になっている場合はセッション識別子を Cookie に格納でき、それ以外の場合はセッション識別子を URL に格納します。
セッションは最初の要求で開始され、Timeout プロパティに指定された時間 (分) が経過するまでにブラウザが継続して新しい要求を実行する限り、セッション値は保持されます。新しいセッションが始まると、セッションの Start イベントが発生します。このイベントを使用すると、セッションの既定値の設定などのセッションの開始時の追加処理を実行できます。セッションの有効期限が切れると、Abandon メソッドが呼び出されて、ASP.NET アプリケーションがシャットダウンされ、セッションの End イベントが発生します。このイベントを使用すると、必要なクリーンアップを実行できます。End イベントは、セッション状態 mode が InProc に設定されている場合のみ発生します。
パフォーマンス向上のため、Cookie を使用するセッションは、実際にデータが Session オブジェクト内に格納されるまでセッション ストレージを割り当てません。詳細については、SessionID プロパティのトピックを参照してください。
セッション状態が ASP.NET アプリケーションの境界を超えて保持されることはありません。ブラウザが別のアプリケーションに移動した場合、新しいアプリケーションが同じセッション情報を使用することはできません。
セッション値は、既定で Web サーバーのメモリに格納されます。SQL Server データベース、ASP.NET 状態サーバー、またはカスタム サーバーにセッション値を格納することもできます。これによって、ASP.NET、IIS プロセス、または ASP.NET アプリケーションが再起動した場合にもセッション値が保持され、Web ファームのすべてのサーバーでセッション値を使用できるようになります。この動作は、mode 属性をアプリケーション構成の sessionState 要素の有効な SessionStateMode 値に設定することにより構成されます。詳細については、「セッション状態モード」を参照してください。
セッション状態の代替手段としては、アプリケーション状態 (Application プロパティのトピックを参照) および ASP.NET アプリケーションのすべてのユーザーがアクセスできる変数を格納する ASP.NET キャッシュ (System.Web.Caching 名前空間のトピックを参照)、タイムアウトを使用して有効期限切れにすることなく、データ ストアにユーザー値を永続化する ASP.NET プロファイル (System.Web.Profile 名前空間のトピックを参照)、コントロール値を ViewState に保持する ASP.NET の System.Web.UI.WebControls、Cookies、QueryString プロパティ、および Form コレクションを使用して HTTP POST から利用できる HTML フォームのフィールドがあります。セッション状態と他の状態管理の代替手段の違いの詳細については、「ASP.NET の状態管理に関する推奨事項」を参照してください。

セッション状態から値を設定および取得するコード例を次に示します。
<%@ Page Language="C#" %> <%@ Import Namespace="System.Collections" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> public void Page_Load(object sender, EventArgs args) { if (!IsPostBack) { if (Session["address"] == null) { enterUserInfoPanel.Visible = true; userInfoPanel.Visible = false; } else { enterUserInfoPanel.Visible = false; userInfoPanel.Visible = true; SetLabels(); } } } protected void SetLabels() { firstNameLabel.Text = Session["firstName"].ToString(); lastNameLabel.Text = Session["lastName"].ToString(); addressLabel.Text = Session["address"].ToString(); cityLabel.Text = Session["city"].ToString(); stateOrProvinceLabel.Text = Session["stateOrProvince"].ToString(); zipCodeLabel.Text = Session["zipCode"].ToString(); countryLabel.Text = Session["country"].ToString(); } protected void EnterInfoButton_OnClick(object sender, EventArgs e) { Session["firstName"] = Server.HtmlEncode(firstNameTextBox.Text); Session["lastName"] = Server.HtmlEncode(lastNameTextBox.Text); Session["address"] = Server.HtmlEncode(addressTextBox.Text); Session["city"] = Server.HtmlEncode(cityTextBox.Text); Session["stateOrProvince"] = Server.HtmlEncode(stateOrProvinceTextBox.Text); Session["zipCode"] = Server.HtmlEncode(zipCodeTextBox.Text); Session["country"] = Server.HtmlEncode(countryTextBox.Text); enterUserInfoPanel.Visible = false; userInfoPanel.Visible = true; SetLabels(); } protected void ChangeInfoButton_OnClick(object sender, EventArgs args) { enterUserInfoPanel.Visible = true; userInfoPanel.Visible = true; } </script> <html > <head id="Head1" runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>User Information</title> </head> <body> <form id="form1" runat="server"> <h3> User information</h3> <asp:Label ID="Msg" ForeColor="maroon" runat="server" /><br /> <asp:Panel ID="enterUserInfoPanel" runat="server"> <table cellpadding="3" border="0"> <tr> <td> First name:</td> <td> <asp:TextBox ID="firstNameTextBox" runat="server" /></td> </tr> <tr> <td> Last name:</td> <td> <asp:TextBox ID="lastNameTextBox" runat="server" /></td> </tr> <tr> <td> Address:</td> <td> <asp:TextBox ID="addressTextBox" runat="server" /></td> </tr> <tr> <td> City:</td> <td> <asp:TextBox ID="cityTextBox" runat="server" /></td> </tr> <tr> <td> State or Province:</td> <td> <asp:TextBox ID="stateOrProvinceTextBox" runat="server" /></td> </tr> <tr> <td> Zip Code/Postal Code:</td> <td> <asp:TextBox ID="zipCodeTextBox" runat="server" /></td> </tr> <tr> <td> Country:</td> <td> <asp:TextBox ID="countryTextBox" runat="server" /></td> </tr> <tr> <td> </td> <td> <asp:Button ID="enterInfoButton" runat="server" Text="Enter user information" OnClick="EnterInfoButton_OnClick" /></td> </tr> </table> </asp:Panel> <asp:Panel ID="userInfoPanel" runat="server"> <table cellpadding="3" border="0"> <tr> <td> Name:</td> <td> <asp:Label ID="firstNameLabel" runat="server" /> <asp:Label ID="lastNameLabel" runat="server" /> </td> </tr> <tr> <td valign="top"> address:</td> <td> <asp:Label ID="addressLabel" runat="server" /><br /> <asp:Label ID="cityLabel" runat="server" /> , <asp:Label ID="stateOrProvinceLabel" runat="server" /> <asp:Label ID="zipCodeLabel" runat="server" /><br /> <asp:Label ID="countryLabel" runat="server" /> </td> </tr> <tr> <td> </td> <td> <asp:Button ID="changeInfoButton" runat="server" Text="Change user information" OnClick="ChangeInfoButton_OnClick" /></td> </tr> </table> </asp:Panel> </form> </body> </html>


System.Web.SessionState.HttpSessionState


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


HttpSessionState プロパティ

名前 | 説明 | |
---|---|---|
![]() | CodePage | 現在のセッションの文字セット識別子を取得または設定します。 |
![]() | Contents | 現在のセッション状態オブジェクトへの参照を取得します。 |
![]() | CookieMode | アプリケーションが Cookie なしのセッション用に構成されているかどうかを示す値を取得します。 |
![]() | Count | セッション状態コレクション内の項目の数を取得します。 |
![]() | 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 | セッション状態プロバイダがセッションを終了するまでに、要求間で許容される時間 (分単位) を取得または設定します。 |

HttpSessionState メソッド

名前 | 説明 | |
---|---|---|
![]() | 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 から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

HttpSessionState メンバ
セッション状態値、セッションレベルの設定および有効期間管理メソッドにアクセスできるようにします。
HttpSessionState データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | CodePage | 現在のセッションの文字セット識別子を取得または設定します。 |
![]() | Contents | 現在のセッション状態オブジェクトへの参照を取得します。 |
![]() | CookieMode | アプリケーションが Cookie なしのセッション用に構成されているかどうかを示す値を取得します。 |
![]() | Count | セッション状態コレクション内の項目の数を取得します。 |
![]() | 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 から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

Weblioに収録されているすべての辞書からHttpSessionStateを検索する場合は、下記のリンクをクリックしてください。

- HttpSessionStateのページへのリンク