惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
博客园_首页
量子位
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
T
The Blog of Author Tim Ferriss
博客园 - 聂微东
V
Visual Studio Blog
J
Java Code Geeks
宝玉的分享
宝玉的分享
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
D
Docker
大猫的无限游戏
大猫的无限游戏
Y
Y Combinator Blog
H
Help Net Security
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale

博客园 - 在北京的湖南人

Table变量和临时表区别 C#trim不掉空格的原因 - 在北京的湖南人 - 博客园 vss2005 只获取到文件夹获取不到文件的解决 一段关于浏览器兼容的事件定位代码,经过测试! 收集关于scrollTop信息 数据库中null字段在逻辑层的判断的两种办法 - 在北京的湖南人 - 博客园 sql server 2005 新分页存储过程 sql 优化之关于null 和数据类型 js trim函数 复制粘贴都出错,还有什么错不能出的? sql 优化实战 从 35秒到0秒 又从0秒到25秒 asp.net上传时出现的问题:"对路径的访问被拒绝" gridview超链接列带多个参数 访问 IIS 元数据库失败 sql server clr 集成系列之四 创建一个clr的表值函数---实用的Split函数 sql server 2005 clr 集成 之三 关于context connetion sql server clr 集成系列之二 简单的sql 函数 Sql server 2005 Clr集成系列开篇 为什么微软要集成clr 到sql server? return语句写错地方导致数据库表长时间被锁
关于asp.net session机制的疑惑以及猜想
在北京的湖南人 · 2007-04-17 · via 博客园 - 在北京的湖南人

   这几天自己做着玩一个网站,但是遇到了一个关于session的问题。我使用prototype的Ajax对象来访问页面获取参数,这个参数必须要根据当前的会话的唯一id来确认客户。一般这种需求都会想到SessionId,所以我使用了他。但是我却惊奇得发现,每次使用ajax去请求的时候,SessionId却是变化的!
         这下子郁闷了....这个不会是ajax的问题吧?思前想后,排出了这个可能性。原因:asp.net无法区分http包是来自xmlrequest异步对象还是浏览器的一般请求,asp.net只是得到http包,包的内容并没有标记它是不是异步请求。后来自己做了测试也表明使用一般请求get或者post,都会变化sessionid。好了, 可能是我的思路错了,换个吧。由于我客户端没有禁用cookie,所以我想是不是可以从cookie入手。
         asp.net的Session如果在没有配置为cookieless=true的话,那么在客户端会存储一个sessionid的cookie,
类似于上图。

但是奇怪的是:我竟然没有跟踪到这个cookie,为什么呢???百思不得其解?记得以前看到的文章都说session标记由客户端cookie来维护,asp.net在http包头找到这个cookie后,就能够在进程内找到相应的数据。
但是我的为什么就没有呢?问了几位朋友,也摇头。竟然还有人说我ie有问题,或者是rp有问题,哎....期间找问题解决办法走了不少弯路.....后来,在一次不经意的代码编写中,我的每次访问页面,都把sessionid存入到session中作为一个键值,然后马上取出来返回给客户端。这次竟然sessionid不变!后来我又实验发现,只要你对session这个对象进行过操作,甚至是执行Session.Clear()方法,SessionId就不会变!那么只要在“客户端同一进程内”的发送的请求都会是一个sessionid!!!此时我才感性的认识到:是不是asp.net的session机制就是如果你没有对session对象进行操作,访问的话,那么请求是不是干预session相关对象的,还有这样的好处就是节省了很多服务器的资源,而不需要每次都与session相关的初始化工作(指的是检索cookie中的sessionid,然后构建与当前会话相关的Session对象,供后期httpmodule使用。)
      当然,这个也是我自己对asp.net Session机制的一个感性认识,并没有权威的资料表明,asp.net的Session机制就是这样,欢迎大家讨论,并指正。