- 浏览: 183228 次
- 性别:
- 来自: 深圳
文章分类
最新评论
一、客户端用cookie保存了sessionID
客户端用cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么session超时了(没有请求服务器超过20分钟),session被服务器清除了,则服务器会给你分配一个新的sessionID。你得重 新登录并把这个新的sessionID保存在cookie中。
在没有把浏览器关掉的时候(这个时候假如已经把sessionID保存在cookie中了)这个sessionID会一直保存在浏览器中,每次请求的时候都会把这个sessionID提交到服务器,所以服务器认为我们是登录的;当然,如果太长时间没有请求服务器,服务器会认为我们已经所以把浏览器关掉了,这个时候服务器会把该sessionID从内存中清除掉,这个时候如果我们再去请求服务器,sessionID已经不存在了,所以服务器并没有在内存中找到对应的 sessionID,所以会再产生一个新的sessionID,这个时候一般我们又要再登录一次。
二、客户端没有用cookie保存sessionID
这 个时候如果我们请求服务器,因为没有提交sessionID上来,服务器会认为你是一个全新的请求,服务器会给你分配一个新的sessionID,这就是 为什么我们每次打开一个新的浏览器的时候(无论之前我们有没有登录过)都会产生一个新的sessionID(或者是会让我们重新登录)。
当我们一旦把浏览器关掉后,再打开浏览器再请求该页面,它会让我们登录,这是为什么?我们明明已经登录了,而且还没有超时,sessionID肯定还在服 务器上的,为什么现在我们又要再一次登录呢?这是因为我们关掉浏览再请求的时候,我们提交的信息没有把刚才的sessionID一起提交到服务器,所以服 务器不知道我们是同一个人,所以这时服务器又为我们分配一个新的sessionID,打个比方:浏览器就好像一个要去银行开户的人,而服务器就好比银行, 这个要去银行开户的人这个时候显然没有帐号(sessionID),所以到银行后,银行工作人员问有没有帐号,他说没有,这个时候银行就会为他开通一个帐 号。所以可以这么说,每次打开一个新的浏览器去请求的一个页面的时候,服务器都会认为,这是一个新的请求,他为你分配一个新的sessionID。
sessionid是保存在客户端的cookie中的,名叫,aspnet_sessionId,如果配置文件禁用了不用cookie来保存的话,sessionid会通过url来传递,如果客户端都禁用了cookie,那就脑残了,每次浏览器都是新的请求了!
发表评论
文章已被作者锁定,不允许评论。
-
使用SignalR构建一个最基本的web聊天室
2015-01-06 15:09 727使用SignalR,可以使用服务器消息推送到客户端,件demo ... -
一台服务器访问另外一台服务器的共享目录
2014-12-19 10:50 561情况:A服务器的asp.ne程序需访问B服务器的共享目录, ... -
windows7 IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
2014-12-19 10:31 2385aspx 常见错误 CS0016: 未能写入输出文件“c:/ ... -
windows7 IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
2014-12-19 10:30 578windows7 IIS7报错:如果要使用托管的处理程序,请 ... -
Cookie小知识
2014-12-17 11:02 558如果cookie设置了过期时间,cookie就会保存在硬盘中 ... -
一个避免用户重复点击按钮造成重复数据的小技巧
2013-01-13 16:13 1169<script> //启用 ... -
SWFupload 上传控件的使用的使用
2012-12-02 16:17 833-- 首先说个解决 ie兼容的标签 <meta ht ... -
评论的延迟加载
2012-11-10 18:34 739看verycd、cnbeta的评论区域很奇怪,每次看完了正文, ... -
进程管理运用,防盗链,权限限制
2012-11-05 22:58 552图片防止盗链 void Appl ... -
进程外session配置
2012-11-05 22:57 839进程外session StateServer 对象必须可序列 ... -
分页底层实现(超原理)
2012-10-16 22:19 920--样式 .paginator{ font: 12px ... -
生命周期请求过程
2012-10-07 14:40 701客户端第一步:用户在地址栏里面输入地址,或者是提交表单第二步: ... -
C#,FTP上传的代码 FtpWebRequest
2012-08-24 22:46 925private void Upload(string file ... -
.net ajax控件实现百度,谷歌智能搜索
2012-08-08 22:11 868首先创建一个webservice,不懂也没关系,会用 ... -
asp.net几种开源上传控件,flash,ajax版,支持多文件
2012-08-08 22:11 19021、AspnetUpload 地址:http://www.a ... -
js和C#中的进制转换方法
2012-08-08 22:12 733在.net Framework中,System.Convert ... -
下拉框下的树形结构数据的绑定
2012-08-12 22:12 815privatevoid BindDropDownLi ... -
Repeater 控件实现无刷新分页
2012-08-12 22:13 1245本文讲述的是如何利用 XMLHttpRequest ... -
.net文件上传的各种操作及创建文件夹和删除上传的文件方法
2012-08-12 22:15 885aspx中<tr><td align=& ... -
使用HTML,CSS快速导出数据到Excel
2012-08-12 22:16 1216一般是导出到txt,csv或excel。txt和cs ...
相关推荐
这里使用Guid写到cookie里,注意把这个cookie设置成httponly的,当然如果你在程序里使用了Session,那么Session.SessionID就可以用来唯一标识一个用户了,Session.SessionId本质是在cookie……
这里有多种解决方案: 1)利用外部进程保存 session 2)利用数据库保存 session 3)用户ID放入cookie,若检测到session为空但cookie存在在重新初始化 session. 4)将要对其进行操作的目录移出asp.net程序外 我这里使用了...
ashx输出作为页面元素img的背景(属性src的值,eg:<img src="../Handler/WaterMark.ashx" id="vimg" alt="" onclick="change()" />) .ashx文件有个缺点,他处理控件的回发事件非常麻烦,比如说如果用它来生成...
Sessionid,如一些用于认证的auth-cookie,就不用担心身份被人获得了,这对于一些后台程 序和webmail提升安全性的意义是重大的。再次使用上面的攻击手法时可以看到,已经不能 获取被我们设置为HttpOnly的敏感Cookie...
constraint fk_classes_id foreign key(classes_id) references classes(id) ); 多列外键组合,必须用表级别约束语法: create table classes( id int, name varchar(20), number int, primary key(name, number) ...
方法本质是:把session存入array,对array进行增加、删除、修改操作,array中的每一组记录都是一个商品的信息(个数,价格等); 解决购物车的思路是用session记录一个二维数组。一维代表每一个商品,二维包含了商品的...
方法本质是:把session存入array,对array进行增加、删除、修改操作,array中的每一组记录都是一个商品的信息(个数,价格等); 解决购物车的思路是用session记录一个二维数组。一维代表每一个商品,二维包含了商品的...
掌握类和对象的概念,掌握面向对象编程的本质 49.静态变量和静态方法的意义,如何引用一个类的静态变量或者静态方法? 50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally 51.Object类(或者其...
1.1.1. 框架的本质 ..................................................................................... 4 1.1.2. 基础框架 ...............................................................................
13.删除除了id号不同,其他都相同的学生冗余信息 14.航空网的几个航班查询题: 15.查出比经理薪水还高的员工信息: 16、求出小于45岁的各个老师所带的大于12岁的学生人数 17.求出发帖最多的人: 18、一个用户表中...
9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、...
9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、...
9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、...
9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、...
9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、...
9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 ...
9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 133 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 133 11、iBatis与Hibernate有什么不同? 133 12、...
9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、...