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

linnchord 2005-10-24 09:06:29
一个问题,不知道是我孤陋寡闻还是一直没有注意,我觉得这是一个很常见的应用问题,但是好像没有看到以前有什么反应,现在来请教大家。

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,导致用户无法正常识别。


这个问题曾经还询问微软技术人员,但没有获得圆满答案。

请教各位大虾,是否有遇到这种问题?如何解决的?
...全文
272 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
linnchord 2005-10-27
  • 打赏
  • 举报
回复
http://www.microsoft.com/china/msdn/library/webservices/asp.net/securitybarriers.mspx

经过多天检测研究,最后看了上面的文章,最终结论这是无法避免的……

目前的结果,只有把session验证改为asp.net的form验证方式,以后应用都采用asp.net内置的form验证了。
8u9 2005-10-25
  • 打赏
  • 举报
回复
奇怪的问题,没有碰到过。。。关注
linnchord 2005-10-25
  • 打赏
  • 举报
回复
我们是用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都是 /

上面应该就是导致混乱的原因,不知道我这样理解是不是正确?

大虾们有什么办法解决吗?
saucer 2005-10-24
  • 打赏
  • 举报
回复
try to use this ieHTTPHeaders tool to verify the session cookies

http://www.blunck.info/iehttpheaders.html
linnchord 2005-10-24
  • 打赏
  • 举报
回复
思归说的正确 按照我以往的经验,即使是同一个服务器下同一个网站,只要存在于不同的虚拟目录都是不能共享session的……

但是目前的状况实在是奇怪啊,而且出现不只一个应用,一个网站登录应用,一个论坛应用都出现这种问题。论坛后来是通过把另一个站点设置为cookieless解决的,但是另一个登录网站不能这样设置,后来改成了Ip访问……

后来还问了微软的技术支持工程师,他说可以在application_EndRequest的时候修改aspnetsession_id的domain或者path……这种做法太奇怪了……
saucer 2005-10-24
  • 打赏
  • 举报
回复
听上去很怪,即使是同一机器,Session应该跟Application有关的,不同Application应该有自己的Session,你对Session Cookie的Domain或Path做了什么手脚了么?
moodboy1982 2005-10-24
  • 打赏
  • 举报
回复
没有遇到过你这种情况呀。先帮你顶顶吧。

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧