命里有时终须有,命里无时莫强求

进入职业的另个阶段,同时也是寻找下一阶段的方向!

 

session信息存储在sql server中

将服务器session信息存储在sql server中
  首先,还是让我们来做一些准备工作。启动sql server和sql server代理服务。在sql server中执行一个叫做 InstallSqlState.sql的脚本文件。这个脚本文件将在sql server中创建一个用来专门存储session信息的数据库,及一个维护session信息数据库的sql server代理作业。我们可以在以下路径中找到那个文件:
[system drive]\winnt\Microsoft.NET\Framework\[version]\
  然后打开查询分析器,连接到sql server服务器,打开刚才的那个文件并且执行。稍等片刻,数据库及作业就建立好了。这时,你可以打开企业管理器,看到新增了一个叫ASPState的数据库。但是这个数据库中只是些存储过程,没有用户表。实际上session信息是存储在了tempdb 数据库的ASPStateTempSessions表中的,另外一个ASPStateTempApplications表存储了asp中 application对象信息。这两个表也是刚才的那个脚本建立的。另外查看管理->SQL server代理->作业,发现也多了一个叫做ASPState_Job_DeleteExpiredSessions的作业,这个作业实际上就是每分钟去ASPStateTempSessions 表中删除过期的session信息的。
  接着,我们返回到Web.config文件,修改mode的值改为SQLServer。注意,还要同时修改sqlConnectionString的值,格式为:
sqlConnectionString="data source=localhost; Integrated Security=SSPI;"
  其中data source是指sql server服务器的ip地址,如果sql server与IIS是一台机子,写127.0.0.1 就行了。Integrated Security=SSPI的意思是使用Windows集成身份验证,这样,访问数据库将以asp.NET的身份进行,通过如此配置,能够获得比使用userid=sa;password=口令的sql server验证方式更好的安全性。当然,如果sql server运行于另一台计算机上,你可能会需要通过Active Directory域的方式来维护两边验证的一致性。
  同样,让我们做个试验。向SessionState.aspx中添加session信息,这时发现session信息已经存在 sql server中了,即使你重起计算机,刚才的session信息也不会丢失。现在,你已经完全看见了session信息到底是什么样子的了,而且又是存储在sql server中的,能干什么就看你的发挥了。

posted on   刘蔡涛  阅读(423)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

导航

统计

点击右上角即可分享
微信分享提示