CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

二级域名导致asp.net中的Session_Id访问混乱并使用户访问产生异常

楼主linnchord(林克)2005-10-24 21:06:29 在 .NET技术 / ASP.NET 提问

一个问题,不知道是我孤陋寡闻还是一直没有注意,我觉得这是一个很常见的应用问题,但是好像没有看到以前有什么反应,现在来请教大家。  
   
  2个域名,根域名相同,例如a.x.com和b.x.com  
   
  这两个域名的网站在不同的服务器,其中a.x.com上通过iframe嵌套了b.x.com的一个页面,例如  
   
  <iframe   src="http://b.x.com/news.aspx"   width="200"   height="400"></iframe>  
   
  a.x.com需要用户登录以后才能完全访问使用所有功能。  
   
  现在的问题是,a.x.com时常会出现用户访问并没有登录,但是登录控件显示已经登录的状态,并出现另一个用户的信息。或者用户正常登录以后出现的是别人的信息。  
   
  这种情况也会在用户通过b.x.com链接访问a.x.com的时候发生。  
   
  经过调试和监测,我们发现用户在访问a.x.com的时候cookie中会获得两个session_id,导致用户无法正常识别。  
   
   
  这个问题曾经还询问微软技术人员,但没有获得圆满答案。  
   
  请教各位大虾,是否有遇到这种问题?如何解决的? 问题点数:100、回复次数:7Top

1 楼moodboy1982(老鹰)回复于 2005-10-24 21:30:44 得分 15

没有遇到过你这种情况呀。先帮你顶顶吧。Top

2 楼saucer(思归)回复于 2005-10-24 21:52:45 得分 50

听上去很怪,即使是同一机器,Session应该跟Application有关的,不同Application应该有自己的Session,你对Session   Cookie的Domain或Path做了什么手脚了么?Top

3 楼linnchord(林克)回复于 2005-10-24 23:03:17 得分 0

思归说的正确   按照我以往的经验,即使是同一个服务器下同一个网站,只要存在于不同的虚拟目录都是不能共享session的……  
   
  但是目前的状况实在是奇怪啊,而且出现不只一个应用,一个网站登录应用,一个论坛应用都出现这种问题。论坛后来是通过把另一个站点设置为cookieless解决的,但是另一个登录网站不能这样设置,后来改成了Ip访问……  
   
  后来还问了微软的技术支持工程师,他说可以在application_EndRequest的时候修改aspnetsession_id的domain或者path……这种做法太奇怪了……Top

4 楼saucer(思归)回复于 2005-10-24 23:22:16 得分 20

try   to   use   this   ieHTTPHeaders   tool   to   verify   the   session   cookies  
   
  http://www.blunck.info/iehttpheaders.htmlTop

5 楼linnchord(林克)回复于 2005-10-25 10:50:15 得分 0

我们是用HttpWatch来检测cookie    
   
  情况如下:  
   
  1.  
   
  首先访问b.x.com   在cookie中获得Asp.Net_SessionId   例如是  
  ASP.NET_SessionId Received ezaskqaeiiw13245byopvrnk  
   
  然后再通过页面上链接访问a.x.com     检测显示客户端send仍然是这个SessionId  
   
  2.  
   
  访问a.x.com的页面,页面中通过iframe嵌套b.x.com的页面,这时候客户端会同时Recieved两个SessionID  
   
  ASP.NET_SessionId Received akywrherny2trri2bah1y0ft  
  ASP.NET_SessionId Received ezaskqaeiiw13245byopvrnk  
   
  最后似乎是根据先后次序判断那个为客户端SessionId的  
   
   
  在上面两种情况下,一般访问情况下应该都不会有什么问题,但是当访问量非常大的时候,无法保证该SessionId的唯一性,并且路径path都是   /  
   
  上面应该就是导致混乱的原因,不知道我这样理解是不是正确?  
   
  大虾们有什么办法解决吗?Top

6 楼lee_cl(豆腐·BombEr)回复于 2005-10-25 11:11:19 得分 15

奇怪的问题,没有碰到过。。。关注Top

7 楼linnchord(林克)回复于 2005-10-27 16:27:45 得分 0

http://www.microsoft.com/china/msdn/library/webservices/asp.net/securitybarriers.mspx  
   
  经过多天检测研究,最后看了上面的文章,最终结论这是无法避免的……  
   
  目前的结果,只有把session验证改为asp.net的form验证方式,以后应用都采用asp.net内置的form验证了。Top

相关问题

  • 关于asp,邮箱,二级域名
  • 关于域名指向的asp代码
  • 用asp实现 根据域名查IP
  • 如何实现session跨域名
  • 域名转发与session问题!
  • 域名转发与session问题!
  • Session属于哪个域名空间
  • 问:如何跨域名访问session.也就是说如何在不同的域名共享session值.
  • 如何编程(ASP)得到从 域名 到 IP 的转换
  • ASP里怎么读取空间对应的域名

关键词

  • asp.net
  • 域名
  • 用户
  • 页面
  • 应用
  • 客户
  • 解决
  • 网站
  • asp
  • application

得分解答快速导航

  • 帖主:linnchord
  • moodboy1982
  • saucer
  • saucer
  • lee_cl

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo