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) ファイルをダウンロードする