私はPHP開発者の方がはるかに多いので、vb.netは新しくなっています。私はWebアプリケーションを構築しましたが、私のユーザーは同じセッションを共有しているように見えますが、私はそれを望んでいないし、なぜ理解できません。私はすべてのセッション情報をモジュール内のグローバルプロパティから格納するオブジェクトにアクセスします。これが理由でしょうか?次のようにVB.NET Webアプリケーション - 不要なユーザセッション共有
コードは次のとおりです。
Module SiteWide
Private mUserSession As New MyLib.User.UserSession
Public Property gUserSession() As MyLib.User.UserSession
Get
If Not HttpContext.Current Is Nothing AndAlso Not HttpContext.Current.Session Is Nothing Then
If Not HttpContext.Current.Session("user") Is Nothing Then
mUserSession = HttpContext.Current.Session("user")
End If
End If
Return mUserSession
End Get
Set(ByVal value As MyLib.User.UserSession)
mUserSession = value
If Not HttpContext.Current Is Nothing AndAlso Not HttpContext.Current.Session Is Nothing Then
HttpContext.Current.Session("user") = value
End If
End Set
End Property
End Module
なぜあなたはSessionオブジェクトのリポジトリとして静的クラス(Module)を使用していますか?静的とは、アプリケーション全体を意味します。 'mUserSession'も暗黙的に静的なので、すべてのユーザーは同じセッションを共有します。 –
ああ...私が言ったように、vb.netには初めてです。私はちょうど同じチェックを繰り返し、場所全体にアクセスするのではなく、私のセッションオブジェクトにアクセスするグローバルな(静的ではない)方法を望んでいました。私はモジュールが静的ではなくグローバルにアクセス可能な関数の記憶スペースであったという印象を受けました。 – James