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

推荐订阅源

WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
V
Visual Studio Blog
宝玉的分享
宝玉的分享
IT之家
IT之家
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
I
InfoQ
B
Blog RSS Feed
T
Threatpost
博客园_首页
M
MIT News - Artificial intelligence
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Know Your Adversary
Know Your Adversary
U
Unit 42
Engineering at Meta
Engineering at Meta
C
Cyber Attacks, Cyber Crime and Cyber Security
月光博客
月光博客
Scott Helme
Scott Helme
T
Tor Project blog
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
S
Schneier on Security
Vercel News
Vercel News
博客园 - Franky
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
L
LangChain Blog
爱范儿
爱范儿
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
雷峰网
雷峰网
Latest news
Latest news
C
CXSECURITY Database RSS Feed - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
S
Security Affairs
A
About on SuperTechFans
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
大猫的无限游戏
大猫的无限游戏
W
WeLiveSecurity
Cisco Talos Blog
Cisco Talos Blog
罗磊的独立博客

博客园 - 在北京的湖南人

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机制就是这样,欢迎大家讨论,并指正。