[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环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...
随机推荐
- linux基本命令学习01
=============================================================================Unix/Linux最主要的应用领域是基础服务 ...
- the quick brown fox jumps over the lazy dog
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
- c++工程重复编译与重复定义
#ifndef #define #endif防止的是"重复编译",而不是"重复定义"重复编译可能造成重复定义,但重复定义的来源不只有重复编译从代码变成可执行的程 ...
- callback和spring的MD5加密
举个例子:当我们访问淘宝网站的时候,当点击购物车的时候,这个时候提示用户登录用户名和密码,登录成功后,会返回到购物车的页面.这就是回调. 它不返回淘宝的首页,而是返回到我们点击的内容所在页面. 在写接 ...
- 动态计算rem的js代码
以最小1024尺寸为例: function rem() { var htmlEle = document.documentElement; var winWidth = htmlEle.clientW ...
- input[type=file]样式更改以及图片上传预览
以前知道input[type=file]可以上传文件,但是没用过,今天初次用,总感觉默认样式怪怪的,想修改一下,于是折腾了半天,总算是小有收获. 以上是默认样式,这里我想小小的修改下: HTML代码如 ...
- UVA 673 Parentheses Balance (栈)
题意描述: 给出一段只包含()和[]的字符串,判断是否合法,合法输出YES,不合法输出NO 规则: 1.该串为空,则合法 2.若A合法,B合法,则AB合法 3.若A合法,则(A)和[A]均合法 解题思 ...
- 在form里面,放了四个UEditor,怎么在后台分别获取它们值
1) 默认情况下提交到后台的表单名称是 "editorValue",在editor_config.js中可以配置,参数名为textarea. 2) 可以在容器标签(即script标 ...
- PHP defined() 函数
定义和用法 defined() 函数检查某常量是否存在. 若常量存在,则返回 true,否则返回 false. 语法 defined(name) 参数 描述 name 必需.规定要检查的常量的名称. ...
- SSL和SSH有什么区别
SSL 是一种安全协议,它为网络(例如因特网)的通信提供私密性.SSL 使应用程序在通信时不用担心被窃听和篡改. SSL 实际上 是共同工作的两个协议:"SSL 记录协议"(SSL ...