我是ASP.NET新手。我正在创建一个网站,我必须为每个登录该网站的用户创建会话。现在我无法想象如何在我的数据库中存储会话。
我为同样阅读了几本书,并了解了如何配置会话状态。但我仍然在我开始的同一个地方。我无法获得保存会话ID的位置。 我使用sql server会话状态。我已经创建了数据库aspnetdb和所有表格。但我不知道如何使用它们。如何将会话ID保存到数据库中。 我完全很困惑如何解释我的问题。
答案 0 :(得分: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"
/>
答案 1 :(得分:3)
您不需要将会话ID存储在数据库中 - 该部分由运行时为您完成,假设您在SQLServer模式下使用会话。
会话提供程序将在每个请求开始时从DB读取会话数据,并在每个请求结束时写入。它通过设置包含会话ID的cookie,然后使用cookie的值作为数据库查找的键来查找剩余的会话数据。
您始终可以从Session.SessionID属性访问会话ID,但您很少需要这样做。
在第一次在Session对象中保存内容之前,会话ID cookie不会发送到客户端(会话数据也不会保存在数据库中)。您可以使用Web调试器(如Fiddler)轻松查看此内容。
FWIW,通常不应使用会话状态处理登录。例如,标准的ASP.NET成员资格提供程序使用基于cookie的并行系统。