导航
  • 主页
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

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


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

请教各位大虾,是否有遇到这种问题?如何解决的?
...全文
171 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
没有遇到过你这种情况呀。先帮你顶顶吧。
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告