HttpSessionState.Timeout

HttpSessionState.Timeoutでタイムアウト値を設定できる。

HttpSessionState.Timeout プロパティ (System.Web.SessionState) | Microsoft Docs

単位は分。
Default.aspx.csで、

Session.Timeoutを1に。

この状態から1分以上経ってから、Button1を押すと、
この状態から1分以上経ってから、Button1を押すと、

この状態から1分以上経ってから、Button1を押すと、

こうなる。
こうなる。

こうなる。

Sample/aspnet/HttpSessionState/Timeout/src/HttpSessionState_ at master · bg1bgst333/Sample · GitHub

HttpSessionState.Item[]

HttpSessionStateは、インデクサに対応してるので、キーを変えることで複数登録できる。

HttpSessionState.Item[] プロパティ (System.Web.SessionState) | Microsoft Docs

Default.aspxで、

Labelを2つに増やして、
Default.aspx.csは、

"data1"と"data2"で値を別々に登録。

最初はこう
最初はこう

最初はこう。

押しても変わらない
押しても変わらない

押しても変わらない。

5分経つと消える
5分経つと消える

5分経つと消える。

Sample/aspnet/HttpSessionState/Item/src/HttpSessionState_ at master · bg1bgst333/Sample · GitHub

HttpSessionState

HttpSessionStateオブジェクトであるPage.Sessionプロパティは、Dictionary形式でキーを指定して値の取得や設定ができる。
セッションが切れない限りは、Page.Sessionの値はサーバ側で保持される。

HttpSessionState クラス (System.Web.SessionState) | Microsoft Docs
第15回 セッションとビューステート:連載 プログラミングASP.NET ―ASP.NETによるWebアプリケーション実践開発講座― (2/3 ページ) - @IT

Default.aspxで、

LabelとButton。
ButtonはPostBackしたいだけなのでハンドラは不要。
Default.aspx.csで、

PostBackではない最初のロード時に値をセット。
Timeoutはデフォルトで20分って上記の記事にあったけど、20分じゃ切れなかったので、5分にセット。

最初はこう
最初はこう

最初はこう。

Button1を押しても、セッションが切れてなければ、"ABCDE"は表示される。
Button1を押しても、セッションが切れてなければ、"ABCDE"は表示される。

Button1を押しても、セッションが切れてなければ、"ABCDE"は表示される。

5分経った後だと、セッション切れてるから、"ABCDE"も消失。
5分経った後だと、セッション切れてるから、"ABCDE"も消失。

5分経った後だと、セッション切れてるから、"ABCDE"も消失。

Sample/aspnet/HttpSessionState/HttpSessionState/src/HttpSessionState_ at master · bg1bgst333/Sample · GitHub

Page.Session

ASP.NETが持っているセッション情報は、Page.Sessionで取得する。

Page.Session プロパティ (System.Web.UI) | Microsoft Docs
第15回 セッションとビューステート:連載 プログラミングASP.NET ―ASP.NETによるWebアプリケーション実践開発講座― (2/3 ページ) - @IT


まずは、このオブジェクトの型を調べる。
Default.aspxで、

とすると、

Page.Sessionの正体はHttpSessionState
Page.Sessionの正体はHttpSessionState

Page.Sessionの正体はHttpSessionState。

Sample/aspnet/Page/Session/src/Page_ at master · bg1bgst333/Sample · GitHub

TextBox.Text

TextBox.Textで、TextBoxの中身のテキストを取得、設定する。

TextBox.Text プロパティ (System.Web.UI.WebControls) | Microsoft Docs

Default.aspxで、

とする。

"ABCDE"と入力して、Button1を押すと、
"ABCDE"と入力して、Button1を押すと、

"ABCDE"と入力して、Button1を押すと、

"Label1"が"ABCDE"に変わる。
"Label1"が"ABCDE"に変わる。

"Label1"が"ABCDE"に変わる。

Sample/aspnet/TextBox/Text/src/TextBox_ at master · bg1bgst333/Sample · GitHub

TextBox

TextBoxで入力を受け付ける。

TextBox クラス (System.Web.UI.WebControls) | Microsoft Docs

Default.aspxで、

とすると、

入力できるTextBoxが表示されるので、"ABCDE"を入れてみた。
入力できるTextBoxが表示されるので、"ABCDE"を入れてみた。

入力できるTextBoxが表示されるので、"ABCDE"を入れてみた。

Sample/aspnet/TextBox/TextBox/src/TextBox_ at master · bg1bgst333/Sample · GitHub

Label.Text

Label.Textにテキストをセットする。

Label.Text プロパティ (System.Web.UI.WebControls) | Microsoft Docs

Default.aspxで、

こう書くと、

Button1を押すと
Button1を押すと

Button1を押すと、

"Label1"というテキストが"Clicked!"に切り替わる
"Label1"というテキストが"Clicked!"に切り替わる

"Label1"というテキストが"Clicked!"に切り替わる。

Sample/aspnet/Label/Text/src/Label_ at master · bg1bgst333/Sample · GitHub