(ASP.NETとVB.NET) セッションを設定/取得する

ASP.NETとVB.NETのセッションを設定/取得するサンプルです。
(確認環境:Microsoft Visual Studio Community 2019)

目次

目的 セッションを設定/取得する
サンプル Global.asax
  フォーム(ActionForm1.vb)
  コントローラ(test1Controller.vb)
  ビュー(index.vbhtml)

セッションを設定/取得する

画面表示前にセッションに文字を設定し、画面に表示します。

CookieModeの1は、UseCookiesの値でデバイスによらずクッキーを使用します。
IsCookielessのFalseは、セッション IDをHTTP クッキーに格納します。

以下は、MicrosoftのCookieModeのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.web.httpcookiemode?view=netframework-4.8#System_Web_HttpCookieMode_UseCookies

以下は、MicrosoftのIsCookielessのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.web.sessionstate.httpsessionstate.iscookieless?view=netframework-4.8

Global.asax

Global.asaxです。画面表示の前に実行されます。

Imports System.Web.Optimization

Public Class MvcApplication
	Inherits System.Web.HttpApplication

	Protected Sub Application_Start()
		AreaRegistration.RegisterAllAreas()
		FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters)
		RouteConfig.RegisterRoutes(RouteTable.Routes)
		BundleConfig.RegisterBundles(BundleTable.Bundles)
	End Sub

	Protected Sub Session_OnStart()
		Session("message1") = "セッションのテスト"
	End Sub
End Class

13~15行目は、新規に追加しました。
13行目のSession_OnStartは、新しいセッションが開始されたときに実行されます。
14行目は、message1というキーに、値として文字列をセットしています。
4行目は、HttpApplicationクラスを継承しています。

以下は、MicrosoftのSessionStateModule.Start イベントのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.web.sessionstate.sessionstatemodule.start?view=netframework-4.8

フォーム(ActionForm1.vb)

フォームです。入力した値を保持します。

Public Class ActionForm1

	Public Property SessionId As String
	Public Property CookieMode As String
	Public Property IsCookieless As String
	Public Property str1 As String

End Class

コントローラ(test1Controller.vb)

Namespace Controllers
	Public Class test1Controller
		Inherits Controller

		Function Index() As ActionResult
			Dim actionform As New ActionForm1

			actionform.SessionId = Session.SessionID
			actionform.CookieMode = Session.CookieMode
			actionform.IsCookieless = Session.IsCookieless
			actionform.str1 = Session("message1")
			Return View("Index", actionform)
		End Function
	End Class
End Namespace

8行目は、セッションIDをフォームにセットしています。
11行目は、Global.asaxでセットしたキー「message1」の値をフォームにセットしています。

ビュー(index.vbhtml)

ビューです。サーバー側でセットした値を表示します。

@ModelType project1.ActionForm1
@Code
		Layout = Nothing
End Code
<style>
	table, table td {
		border: 1px solid #000;
		width: 400px;
		border-collapse: collapse;
	}
</style>
<table>
	<tr><td>SessionId</td><td>@Model.SessionId</td></tr>
	<tr><td>CookieMode</td><td>@Model.CookieMode</td></tr>
	<tr><td>IsCookieless</td><td>@Model.IsCookieless</td></tr>
	<tr><td>設定した文字列</td><td>@Model.str1</td></tr>
</table>

16行目は、Global.asaxで設定した値を表示しています。

関連の記事

(ASP.NETとVB.NET) POSTで値を別画面に渡す
(ASP.NETとVB.NET) Web.configファイルの値を取得
(ASP.NETとVB.NET) ファイルをアップロードする
(ASP.NETとVB.NET) ファイルをダウンロードする

△上に戻る