ASP.NET のセッション状態
ASP.NET のセッション状態を使用すると、Web アプリケーションを構成する別の ASP.NET ページにユーザーが移動したときにユーザーの値を格納および取得できます。HTTP は状態のないプロトコルです。つまり、Web サーバーはページに対する HTTP 要求をそれぞれ独立した要求として処理します。既定では、サーバーは以前の要求で使用された変数値の情報を保持しません。その結果、複数の要求間で状態情報を維持する必要がある Web アプリケーション (買い物カゴ、データのスクロールなどを実装するアプリケーション) を構築するのが困難になる場合があります。ASP.NET セッション状態は、一定の時間帯に同じブラウザから受け取った要求を 1 つのセッションと認識し、そのセッションの間、変数値を保持できるようにします。
ASP.NET セッション状態は、すべての ASP.NET アプリケーションで既定で有効になります。ASP.NET セッション状態変数は、Session プロパティを使用して簡単に設定および取得できます。このプロパティは、セッション変数値を、名前によってインデックス付けされたコレクションとして格納します。たとえば、次のコード例では、ユーザーの名を表すセッション変数 FirstName と姓を表すセッション変数 LastName を作成し、それぞれに TextBox コントロールから取得した値を設定します。
Session("FirstName") = FirstNameTextBox.Text
Session("LastName") = LastNameTextBox.Text
Session["FirstName"] = FirstNameTextBox.Text;
Session["LastName"] = LastNameTextBox.Text;
ASP.NET は、既定では、セッション情報を ASP.NET アプリケーションのメモリ空間に格納します。オプションとして、スタンドアロン サービスを使用してセッション情報を格納することにより、ASP.NET アプリケーションを再起動した場合でもセッション情報を保持できます。また、SQL Server を使用すると、セッション情報を Web ファームの複数の Web サーバーで使用できます (この場合も、ASP.NET アプリケーションが再起動されたときにセッションが保護されます)。さらに、カスタム データ ストアに格納することもできます。詳細については、「セッション状態モード」を参照してください。
ASP.NET には、セッション状態以外にも、アプリケーション内のデータを保持するためのオプションがいくつか用意されています。それぞれの特徴については、「ASP.NET の状態管理に関する推奨事項」を参照してください。
このセクションの内容
ASP.NET セッション状態の概要
セッション状態機能のさまざまな特徴について説明します。セッション ID
特定のセッションでブラウザがどのように識別されるかについて説明します。セッション状態イベント
global.asax ファイルに追加できるセッション状態イベントについて説明します。セッション状態モード
さまざまなセッション状態ストレージ モードについて説明します。セッション状態の保護
セッション状態の使用時に考慮する必要があるセキュリティ上の問題について説明します。方法 : セッション状態の値を保存する
セッション状態変数に値を格納する例を紹介します。方法 : セッション状態から値を読み取る
セッション状態変数から値を読み取る例を紹介します。セッション状態ストア プロバイダの実装
カスタム セッション状態ストア プロバイダの作成方法について、例を交えて説明します。
参照
System.Web.SessionState
アプリケーション データをセッション状態に格納できるようにするクラスとインターフェイスを提供します。Session
現在の HTTP 要求について、セッションへのアクセスを可能にします。
関連するセクション
ASP.NET の状態管理に関する推奨事項
ASP.NET 状態管理の各オプションの違いについて説明します。ASP.NET の状態管理
アプリケーション状態を ASP.NET アプリケーションに格納するメソッドの概要を紹介します。