2009-12-31 133 views
2

我新的ASP.NET。我正在创建一个网站,我必须为每个登录该网站的用户创建会话。现在我无法想像如何将会话存储在我的数据库中。不知道如何存储会话ID在SQL会话状态

我读了几本书,对于相同的,并得到了如何配置会话状态。但我仍然在我开始的地方。我无法获得应保存会话ID的位置。 我使用sql server会话状态。我已经创建了数据库aspnetdb和所有表。但我不知道如何使用它们。如何将我的会话ID保存到数据库中。 我完全困惑如何解释我的问题。

回答

3

你并不需要在数据库中存储会话ID - 这部分是为你做通过运行时,假设您在SQLServer模式下使用会话。

会话提供商将在每个请求开始读从DB会话数据,并在每个请求的末尾写。它通过设置一个包含会话ID的cookie,然后使用cookie的值作为数据库查找的关键字来执行此操作,以查找会话数据的其余部分。

你总是可以从Session.SessionID属性访问会话ID,但你应该很少需要这么做。

直到您第一次在会话对象中保存某些内容时,会话ID cookie才会发送到客户端(也不会将会话数据保存在数据库中)。您可以通过Web调试器(如Fiddler)轻松查看。

FWIW,正常登录不应该使用会话状态来处理。例如,标准的ASP.NET成员资格提供程序使用基于Cookie的并行系统。

4

HOW TO: Configure SQL Server to Store ASP.NET Session State

基本上,你必须配置它在web.config中:

<sessionState 
      mode="SQLServer" 
      sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>" 
      cookieless="false" 
      timeout="20" 
    /> 
+0

THX的帮助。但我也是这样做的。但我仍然不知道它是如何工作的。我的会话ID如何维护到数据库中。即使我不知道用户会话是否会得到维护或通过这样做。我甚至在web配置文件中编写了机器密钥,但不知道所有这些是如何工作的。我无法想象。 Plz帮助在这方面考虑我是一个新手 – 2009-12-31 12:27:38