ASP.NET セッション管理チュートリアル [例]

ASP.NETセッション管理

すべての Web アプリケーションが動作する HTTP プロトコルはステートレス プロトコルです。 ステートレスとは、あるリクエストから別のリクエストまで情報が保持されないことを意味します。

たとえば、ログイン ページに 2 つのテキスト ボックスがあり、XNUMX つは名前用、もう XNUMX つはパスワード用であるとします。そのページで [ログイン] ボタンをクリックすると、アプリケーションはユーザー名とパスワードが次のページに渡されるようにする必要があります。

ASP.Net では、これはさまざまな方法で行われます。 XNUMX つ目の方法は、ViewState と呼ばれる概念を使用する方法です。 ここには、ASP.Net がすべてのコントロールのコンテンツを自動的に保存します。 また、これが次のページに確実に渡されるようにします。 これは、ViewState と呼ばれるプロパティを介して行われます。

開発者がビューステートで何かを変更することは理想的ではありません。 これは、ASP.Net のみで処理する必要があるためです。

ASP.NETセッションオブジェクト

もう XNUMX つは、「セッション オブジェクト」と呼ばれるオブジェクトを使用する方法です。 Session オブジェクトは、アプリケーションのライフサイクル全体を通じて使用できます。 Session オブジェクトには、キーと値のペアをいくつでも保存できます。 したがって、どのページでも、以下のコード行を使用して Session オブジェクトに値を保存できます。

Session["Key"]=value

これにより、値がセッション オブジェクトに保存され、「キー」部分は値に名前を付けるために使用されます。これにより、後で値を取得できるようになります。値を取得するには、以下のステートメントを発行するだけです。

Session["Key"]

ASP.NETセッションオブジェクトの例

この例では、Session オブジェクトを使用して、ページの名前テキスト ボックス フィールドに入力された名前を保存します。次に、その値を取得して、それに応じてページに表示します。Demo.aspx.cs ファイルに以下のコードを追加しましょう。

セッションオブジェクトを使用する

protected void btnSubmit_Click(object sender,EventArgs e)
{
	Session["Name"] = txtName.Text;

	Response.Write(Session["Name"]);

	lblName.Visible = false; 
	txtName.Visible = false; 
	1stLocation.Visible = false;
	chkC.Visible = false; 
	chkASP.Visible = false; 
	rdMale.Visible = false;
	rdFemale.Visible = false;
	btnSubmit.Visible = false;
}

コードの説明:-

  1. コードの最初の行は、Name テキスト ボックス コントロールの値を取得し、それを Session オブジェクトに格納します。Session[“Name”] のコードを指定することで、プロパティに “Name” という名前を付けます。プロパティに名前を指定すると、後でプロパティを取得しやすくなります。
  2. コードの次の行は、Session オブジェクトから保存された値を取得します。 次に、この値を「Response.Write」メソッド経由でクライアントに書き込みます。
  3. 最後に、フォーム上のすべてのコントロールを非表示にします。これを行わないと、すべてのコントロールと応答値が一緒に表示されます。

上記の変更を行うと、次の出力が表示されます。

出力:

セッションオブジェクトを使用する

出力から、name のセッション値が取得され、ブラウザに表示されたことがわかります。

まとめ

  • セッション管理はその解決策です ASP.net 情報があるページから別のページに確実に受け渡されるようにするためです。
  • ページのビュー ステート プロパティは、あるページから別のページにコントロールの情報を自動的に渡すために使用されます。
  • 「Session」オブジェクトは、Web ページ内の特定の値を保存および取得するために使用されます。