.NET開発者のためのブログメディア
ASP.NETでSessionを使ってセッション変数を指定・取得する方法
公開日時: 更新日時:

ASP.NETでWebアプリケーションを作成する場合、Web画面間でデータをやり取りすることが多々あります。やり取りの方法はいくつかありますが、その中のひとつであるセッション変数を利用する方法について確認していきましょう。
- SE
- すいません。今の現場でhidden項目を活用して画面間のデータの受渡しを実装していたのですが、先輩に怒られちゃいました。データの受渡しは、他の方法で実装する必要があるのでしょうか?
- PL
- クライアント側のプログラムって各々のChromeやIEなどのブラウザから閲覧可能ですよね。画面からは隠れていてもプログラムソースではバッチリ確認できます。ソースを読める方なら容易にデータを取得できますから、見られるとダメなデータは基本的にセッション変数を使用します。
目次
ASP.NETのセッション変数とは
ASP.NETだけでなく、Webアプリケーションを開発する現場で、よく出てくるのがセッション変数になります。セッション変数とは、セッションIDと紐づけてサーバー側に格納する変数のことです。サーバーに格納するとセッションが有効な間は、そのセッション変数に格納されているデータを複数の画面から参照することができます。
とても便利な変数で、多くの開発者が利用しています。しかし便利な反面、セッションの値が奪われないか、改竄されないかといったリスク対策も頭に入れておく必要があります。
セッション変数を使った値の指定や取得方法について
ここではC#を活用して、セッション変数を利用するサンプルソースを紹介します。
C# セッション変数受渡し画面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="Text1" maxlength="5" name="Text1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="画面遷移" hidefocus="true" onclick="Button1_click" />
</div>
</form>
</body>
</html>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
using System;
namespace WebApplication2
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void Button1_click(object sender, EventArgs e)
{
Session["変数名1"] = Text1.Text;
Response.Redirect("WebForm2.aspx");
}
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication2.WebForm2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
using System;
namespace WebApplication2
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["変数名1"] != null)
{
Label1.Text = (string)Session["変数名1"];
}
}
}
}
|
テスト実行
WebForm1画面にて、テキストボックスに”test”を入力して、画面遷移ボタンを押下します。
実行結果
WebForm2画面にて、遷移した値”test”がラベルに反映されています。
- SE
- セッション変数でやり取りする方法って意外と簡単ですね。セッションって聞いて勝手に難しそうだと思い込んでいましたが、便利なのでたくさん使っちゃいそうです。そして画面間でのデータの受渡しには、hidden項目はこれから使用しないようにします。
- PL
- そうですね。hidden項目を利用して重要なデータの受渡しを行うことは、Web業界ではご法度です。セッション変数という便利な変数が準備されていますので、積極的に活用していきましょう。
Web開発ではセッション変数の理解が必要です
Webアプリケーションを開発する現場では、セッション変数は多く見受けられます。サンプルソースからでもわかるように、とても便利で簡単です。初心者の方でもすぐに実装できるので、積極的に活用していきましょう。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)