我遇到的问题是我的authcookie没有在浏览器关闭时丢弃,或者当其他用户登录时。
我的cookie在这里声明:
If ModelState.IsValid Then
'check username and password
If model.pwd = db.users.First(Function(t) t.NT_id = model.NT_id).pwd Then
'create an authentication cookie
FormsAuthentication.SetAuthCookie(model.NT_id, False) 'set to false to destroy cookie on browser close
'redirect action if login is successful
Return RedirectToAction("Construction", "Home")
Else
ModelState.AddModelError("", "Invalid Username or Password")
End If
End If
Return View(model)
我知道这不会丢弃cookie,因为我有一个变量来显示cookie用户名
Public Shared uNT_id = If(HttpContext.Current.User.Identity.IsAuthenticated, HttpContext.Current.User.Identity.Name, System.Environment.UserName)
答案 0 :(得分:0)
通过将所有变量转换为带有get和set的属性来解决这个问题,以阻止它们进行缓存。
Public Class userinfo
Public Shared Property uNT_id As String
Get
If HttpContext.Current.User.Identity.IsAuthenticated Then
Return HttpContext.Current.User.Identity.Name
Else
Return System.Environment.UserName
End If
End Get
Set(value As String)
If HttpContext.Current.User.Identity.IsAuthenticated Then
value = HttpContext.Current.User.Identity.Name
Else
value = System.Environment.UserName
End If
End Set
End Property
Public Shared Property uid As String
Get
Return db_apps.app_users.First(Function(t) t.NT_id = uNT_id).app_user_id
End Get
Set(value As String)
value = db_apps.app_users.First(Function(t) t.NT_id = uNT_id).app_user_id
End Set
End Property
Public Shared Property ussn As Integer
Get
Return db_apps.app_users.First(Function(t) t.NT_id = uNT_id).ssn
End Get
Set(value As Integer)
value = db_apps.app_users.First(Function(t) t.NT_id = uNT_id).ssn
End Set
End Property
Public Shared Property upwd As String
Get
Return db_apps.app_users.First(Function(t) t.NT_id = uNT_id).pwd
End Get
Set(value As String)
value = db_apps.app_users.First(Function(t) t.NT_id = uNT_id).pwd
End Set
End Property
Public Shared Property uname_first As String
Get
Return db_apps.app_users.First(Function(t) t.NT_id = uNT_id).name_first
End Get
Set(value As String)
value = db_apps.app_users.First(Function(t) t.NT_id = uNT_id).name_first
End Set
End Property
End Class