【问题标题】:Starting an ending a user session开始结束用户会话
【发布时间】:2012-10-10 03:57:04
【问题描述】:
我对用户会话管理感到困惑,我使用的是 2010 express 和 VB。
我有一个函数将用户名和密码发送到我的数据库和一个存储过程,如果用户有效则返回布尔值。
如果用户有效,我的问题是如何开始会话。我根据 msdn 文档将 cookie 设置为 auto 和 session inproc。
如果我的函数返回 true,我该如何开始会话?
那么我调用的 .net 类和方法是什么。我假设大多数人都在使用预构建的 MS 登录解决方案,这就是我努力寻求答案的原因。
【问题讨论】:
标签:
asp.net
vb.net
session
session-state
【解决方案1】:
一旦您在 web.config 文件中配置了会话(我假设您已经这样做了),会话就会在 ASP.NET 中自动启动。创建会话后,转到项目中的 Global.asax 文件(或添加一个)以运行额外的代码。 (注意:这并不意味着有登录。会话是自动创建的。)
在非常原始的基础上,您可以将登录信息存储在 Session 对象中:
' check login credentials
Public Sub Login(user As String, pwd As String)
Dim authenticated As Boolean = False
' db authentication check here
If authenticated Then
HttpContext.Current.Session("authenticated") = True
Else
Throw New Exception("not authenticated!")
End If
End Sub
' logout user
Public Sub Logout()
HttpContext.Current.Session("authenticated") = False
End Sub
' check if user is logged in
Public Function IsAuthenticated() As Boolean
Return HttpContext.Current.Session("authenticated") = True
End Function
但如前所述,这是非常简单的。您最好使用一些会话管理技术,例如this example 中的技术。