【发布时间】:2010-12-11 09:40:05
【问题描述】:
我们在会话中存储了两个对象。不知何故,来自另一个用户的一个对象被加载到另一个用户的会话中。用户应该无权访问这些特定数据,而他们一看到它就知道出了问题。
我们有提供给他的数据的视觉证据,并且肯定除非会话混淆,否则不可能发生。这是一个非常可怕的情况,我们无法弄清楚(我们无法重现它)。对我们来说唯一的答案就是责怪 ASP.NET StateServer 将会话变量混为一谈,这是完全不能接受的,并且让我们处于不利的境地。
我们的应用程序是在带有 IIS6 的 Windows Server 2003 上运行的 ASP.NET 2.0 应用程序,使用 StateServer cookieless="false" 会话模式和 FormsAuthentication。
还有其他人遇到过这个问题吗?我们该如何解决?
【问题讨论】:
-
我见过这个,但在 .Net 1.1 中。 t 应该是在 2.0 中修复的。在尝试发布答案之前,我有一些问题。第一个问题,您使用的是无 cookie 会话吗?
-
谢谢!是的,cookieless(它在问题中说)。
-
抱歉...没看过。由于使用无cookie会话意味着SessionID作为querystring参数包含在URL中,那么当这种情况发生时,您是否验证过两个用户之间URL的SessionID querystring参数不同?
-
天啊。对不起。它不是无饼干的。我们的会话由 cookie 提供支持。该死的双重否定!!!
-
好的。我找不到我的原始参考资料。我知道微软曾经修复过这样的错误。我似乎再也找不到文档了。当然,它已经过时了几年。
标签: asp.net security session iis-6 stateserver