HttpSessionState クラスとは? わかりやすく解説

HttpSessionState クラス

セッション状態値、セッションレベルの設定および有効期間管理メソッドアクセスできるようにします。

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

Public NotInheritable Class
 HttpSessionState
    Implements ICollection, IEnumerable
Dim instance As HttpSessionState
public sealed class HttpSessionState : ICollection,
 IEnumerable
public ref class HttpSessionState sealed :
 ICollection, IEnumerable
public final class HttpSessionState implements
 ICollection, IEnumerable
public final class HttpSessionState implements
 ICollection, IEnumerable
解説解説

ASP.NET は、複数要求に対して一意ブラウザ セッション関連付けられた情報格納するためのセッション状態管理機能提供します格納できるのは、キー名または数値インデックスによって参照する値のコレクションです。セッション値およびその機能には、現在の HttpContext の Session プロパティまたは PageSession プロパティ使用してアクセス可能な 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.NETIIS プロセス、または 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>
            &nbsp;</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>
            &nbsp;</td>
          <td>
            <asp:Button ID="changeInfoButton" runat="server"
 Text="Change user information" OnClick="ChangeInfoButton_OnClick"
 /></td>
        </tr>
      </table>
    </asp:Panel>
  </form>
</body>
</html>
.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
  System.Web.SessionState.HttpSessionState
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
HttpSessionState メンバ
System.Web.SessionState 名前空間
System.Web.Profile
System.Web.Caching
その他の技術情報
セッション状態概要



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

辞書ショートカット

すべての辞書の索引

「HttpSessionState クラス」の関連用語

HttpSessionState クラスのお隣キーワード
検索ランキング

   

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



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

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

©2025 GRAS Group, Inc.RSS