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

ASP.NET+VB.NETのセッションを設定/取得するサンプルです。

確認環境
・Microsoft Visual Studio Community 2017

目次

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

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

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

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("view1", actionform)
		End Function
	End Class
End Namespace

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

ビュー

ビューです。サーバー側でセットした値を表示する画面です。ファイル名はview1.vbhtmlです。

@ModelType asp001.ActionForm1
@Code
		Layout = Nothing
End Code
<style>
	table, table td {
		border: 1px solid #000;
		width: 400px;
		border-collapse:collapse;
	}
</style>
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width" />
	<title>Index</title>
</head>
<body>
	<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>
</body>
</html>

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

関連の記事

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

△上に戻る