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
その他の技術情報
セッション状態概要

HttpSessionState プロパティ


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

  名前 説明
パブリック プロパティ CodePage 現在のセッション文字セット識別子取得または設定します
パブリック プロパティ Contents 現在のセッション状態オブジェクトへの参照取得します
パブリック プロパティ CookieMode アプリケーションCookie なしのセッション用に構成されているかどうかを示す値を取得します
パブリック プロパティ Count セッション状態コレクション内の項目の数を取得します
パブリック プロパティ IsCookieless セッション IDURL埋め込むか、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 クラス
System.Web.SessionState 名前空間
System.Web.Profile
System.Web.Caching

その他の技術情報

セッション状態概要

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 から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

HttpSessionState クラス
System.Web.SessionState 名前空間
System.Web.Profile
System.Web.Caching

その他の技術情報

セッション状態概要

HttpSessionState メンバ

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

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


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

関連項目

HttpSessionState クラス
System.Web.SessionState 名前空間
System.Web.Profile
System.Web.Caching

その他の技術情報

セッション状態概要



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

辞書ショートカット

すべての辞書の索引

「HttpSessionState」の関連用語

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

   

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



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

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

©2024 GRAS Group, Inc.RSS