众所周知,Session对象的生命周期关闭浏览器之后就会销毁,那该如何持久化的保存Session对象的数据呢?(ps:将session对象的值保存到数据库当中就可以了)使用SQL Server数据库保存Session
session对象案例
记住密码功能开发时用到了cookie对象去存储用户的密码,但是使用session对象也可以去实现记住密码的功能,但是关闭浏览器之后,session对象他就会消失,根本“记不住密码”!!! 那该怎么办?那就需要将session对象进行持久化的处理,这样浏览器才能通过session对象来“记住密码”。
ps:本人还是感觉用cookie对象去实现该功能比较好,这里用session对象去实现,只是单纯想引出 session持久化的场景
一、在电脑上打开cmd目录
二、输入
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
如图所示:
三、在第二张图片的光标后添加运行脚本
输入:aspnet_regsql.exe -S 【服务器】 -U 【登录名】 -P 【密码】 -d 【数据库名】 -ssadd -sstype c
示例:aspnet_regsql.exe -S 127.0.0.1 -U sa -P 1234 -d database -ssadd -sstype c
运行后可以得到
这样就代表存放session的数据库建成了,只需要在数据库中看看有没有这个数据库即可。
四、配置文件
然后进入项目web.config配置节点文件。
<sessionState
mode="SQLServer"
allowCustomSqlDatabase="True"
sqlConnectionString="server=127.0.0.1; database=database;uid=sa ;pwd=1234;"
timeout="20"
/>
timeout设置的是session的生命周期,默认的生命周期30分钟
ps:一定要在<System.web></System.web>这个节点中配置,要不然会报错。
通过这些配置,session的生命周期会持久化,即使关闭了浏览器,下一次打开浏览器,session对象还是没有被销毁。