[ASP.NET][Session] 使用 SQLServer 会话管理解决 Session 丢失问题
使用 SQLServer 会话管理解决 Session 丢失问题
步骤
1.通过命令行执行 aspnet_regsql.exe 程序(不要双击安装),先在 CMD 中输入命令
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
再执行
语法:aspnet_regsql.exe -S 服务器ip -U 数据库登录名 -P 数据库密码 -d 所要放入的数据库 -ssadd -sstype c 如:aspnet_regsql.exe -S localhost -U sa -P 123456 -d ZSZ -ssadd -sstype c
执行成功的结果为:

2.检查数据库

自动增加了两张表。
3.在 Web.Config 中加入代码
<sessionState sqlConnectionString="server=.;database=ZSZ;uid=sa;pwd=123456" allowCustomSqlDatabase="true" mode="SQLServer" timeout="1000"></sessionState>

测试
新建一个 HomeController 进行测试,分别是从 Show() 和 Write(),一个是从 Session 中显示内容,另一个是在 Session 中插入内容。
public ActionResult Show()
{
if (Session["name"] != null)
{
return Content(Session["name"].ToString());
} return Content("null");
} public ActionResult Write()
{
if (Session["name"] == null)
{
Session["name"] = "wen";
} return Content("OK");
}
执行 http://localhost:5451/home/write 方法后

观察数据库表变动

现在重新启动调试程序,打开 http://localhost:5451/home/show,会发现不需要重新对 Session 进行赋值。
【注意】调试时不要关闭浏览器。

注意事项
1.不要直接双击使用 aspnet_regsql.exe 进行创建,要直接使用步骤中的命令去生成,否则无效。

如果通过可视化界面去操作,生成的结果是(见下图),和命令行生成的结果不一致。

2.在进行校验 session 状态是否成功时,请不要关闭浏览器,重新启动调试即可。因为服务器中的 SessionId 和浏览器的中 Cookie 是进行关联的,一旦我们关闭了浏览器,默认的情况下可能会清空 Cookie 中的信息,当再次打开后,会重新和服务端建立连接并重新分配 SessionId,也就是说之前保存入库的 SessionId 已经失效,需要重新对 Session 赋值才行。
[ASP.NET][Session] 使用 SQLServer 会话管理解决 Session 丢失问题的更多相关文章
- 使用Spring Session做分布式会话管理
在Web项目开发中,会话管理是一个很重要的部分,用于存储与用户相关的数据.通常是由符合session规范的容器来负责存储管理,也就是一旦容器关闭,重启会导致会话失效.因此打造一个高可用性的系统,必须将 ...
- 会话管理之session技术
上一节我们总结了cookie技术,这节主要总结一下session技术. 1. session对象 在web开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占 ...
- 测开之路一百三十八:会话管理之session
session管理和使用,需要用到flask的session模块和设置安全码:app.secret_key 比如列表页和编辑功能只能给admin用 列表页 编辑页 添加session 登录成功时,把u ...
- JavaWeb基础—会话管理之Session
一.什么是session session类似于客户端在服务器端的账户.使用Map存放 一个会话锁定一个用户(一般情况下是一个客户端,即一个浏览器独占一个session对象),即使使用浏览器访问其他程序 ...
- OWASP 关于会话管理 - 译文 [原创]
英文原文:https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Session_Management_Cheat_Shee ...
- JavaWeb-10(会话技术之session&JSP)
JavaWeb-会话技术之session&JSP 会话管理之Session技术 一.Session 在WEB开发中,server能够为每一个用户浏览器创建一个会话对象(session对象),注 ...
- day11会话管理
会话管理入门 2.1 生活中会话 我: 小张,你会跳小苹果码? 小张: 会,怎么了? 我: 公司年会上要表演节目,你教教我把 小张:没问题,一顿饭而已. 我: OK. ........ 在这次生活中的 ...
- Java中的会话管理——HttpServlet,Cookies,URL Rewriting(译)
参考谷歌翻译,关键字直接使用英文,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url ...
- shiro会话管理
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...
随机推荐
- java_web学习(十) 显示mysql中的数据
一.建立数据库 create database animal; create table animal( sno int, name varchar(20), weight varcahr(20), ...
- botzone Tetris2
为了证明窝最近没有颓废 (并且为了多骗点访问量 游戏链接:https://botzone.org/game/Tetris2 大概就是先写个估价,然后剪剪枝搜它4步. #include<iostr ...
- Java中import及package的用法
有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不 太了解很多人以為原始码 .java 档案中的 import 会让编译器把所 import 的程式通通写到编 ...
- [51nod1443]路径和树
给定一幅无向带权连通图G = (V, E) (这里V是点集,E是边集).从点u开始的最短路径树是这样一幅图G1 = (V, E1),其中E1是E的子集,并且在G1中,u到所有其它点的最短路径与他在G中 ...
- c语言基础学习09_复合类型
=============================================================================涉及到的知识点有:一.结构体1.定义结构体st ...
- Myeclipse xml标签代码提示,引入schema
以SpringMVC为例 先引入命名空间 需要配置 xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schema ...
- oracle游标的使用
--游标的使用 步骤1.声明游标 .打开游标 .获取数据 .关闭游标 declare cursor cur is select * from emp; t_sal cur%rowtype; begin ...
- vue项目中使用ueditor
以vue-cli生成的项目为例 1.static文件夹下先放入ueditor文件 2.index.html添加如下代码 <script type="text/javascript& ...
- JavaSE笔记-异常
Java 异常 Throwable类的体系结构(一些常用的) 异常分类 checked,unchecked 区分:RuntimeException及其子类,Error类及其子类,是unchecked ...
- tp5 加载第三方扩展类库与手动加载的问题
=============================================================== <?phpnamespace my; /*** 加载第三方类库*/ ...