.NET開発者のためのブログメディア
ASP.NETでセッションのタイムアウト判定をする方法

ASP.NETで開発を行う場合、セッションを活用してWeb画面間でデータをやり取りすることは多々あります。そして、このセッションにはタイムアウトという概念が存在します。タイムアウトする時間は各々のコーディングで設定できますので、ここで確認しましょう。
- SE
- ASP.NETにおいて、セッションのタイムアウトの初期値ってどれくらいなのでしょうか?
- PM
- 初期値は20分ですね。ソースコードでもタイムアウトの時間は設定できますので、ここでいくつかの方法を確認しましょう!
目次
ASP.NETでセッションのタイムアウト設定方法
ASP.NETでセッションのタイムアウトを設定する方法はいくつかあります。設定する箇所により優先順位も存在しますので、覚えておきましょう。
■優先順位1
各ページにSession.Timeoutを追加する方法になります。
クライアントサイド、サーバーサイドどちらにも記述可能です。
クライアントサイドで設定する場合:<%Session.Timeout = 60%>
サーバーサイドで設定する場合:Session.Timeout = 60
■優先順位2
global.asax内にあるApplication_Startメソッドの中にSession.Timeoutを追加する方法です。
■優先順位3
Web.configにsessionState 要素を追加する方法になります。
ここで設定した内容は、Webアプリケーション全体に影響を及ぼすので、慎重に設定を行いましょう。
■優先順位4
Machine.Configを変更する方法です。
Web.configと同様にコーディングします。ここでの変更はマシン全体に影響するので、Web.configに対して変更を行う以上に、慎重に行うべきでしょう。
注意点として挙げられるのが、タイムアウトの時間を多く設けすぎると、より多くのメモリーが消費されることです。あまり大きな値を設定することはおすすめできません。
セッションのタイムアウトを設定する方法と判定の仕方もあわせて確認
ここでは、コード内にセッションのタイムアウトを設定する方法と、そのセッションが切れているかどうかを判定するサンプルソースを提供します。
セッションのタイムアウトと判定
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)
{
Session.Timeout = 60; //セッションのタイムアウトの時間を60分に設定する
}
public void Button1_click(object sender, EventArgs e)
{
Session["テスト変数"] = Text1.Text; //画面のテキストボックスの値をセッション変数に格納します。
Response.Redirect("WebForm2.aspx"); //画面遷移します。
}
}
}
|
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 WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session.Timeout = 60; //セッションのタイムアウトの時間を60分に設定する
if (Session["テスト変数"] != null) //テスト変数がセッション切れの場合は処理を飛ばす
{
Label1.Text = (string)Session["テスト変数"]; //画面のラベルにセッション変数の値を格納します。
}
}
}
}
|
- SE
- セッションのタイムアウトの設定方法っていろいろあるのですね。現場に合わせて対応していきます。
- PM
- 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万円東京都文京区(後楽園駅)