我的网络应用中的会话正在混合

时间:2011-06-08 20:08:17

标签: c# asp.net authentication

我有网络应用,这是方案

用户正在登录。 数据从db添加到Object(例如)

class UserData
{
 public string Name { get; set; }
}

并将此对象的实例添加到会话中,当来自另一台计算机的用户登录时,其会话也会应用于第一个用户会话。我知道这个,因为app的标题中显示了名称。

服务器IIS7,ASP.NET 2.0 C#

我仍然无法相信这是怎么可能的,但找不到解决方案,这是我要问的原因。

提前致谢

2 个答案:

答案 0 :(得分:2)

可能需要更多信息。 检查是否未将此用户数据存储在静态对象中。可以跨会话共享此对象。

您是否在屏幕上看到第一个或第二个/最后一个人的姓名(按登录顺序)? 这也可能是输出缓存的情况。您知道如何跟踪或调试Web应用程序吗?您能否验证会话中存储了正确的数据?

答案 1 :(得分:0)

这种情况发生的唯一方法是,如果要么在服务器端缓存数据,在代理级别缓存(不正确),要么显示该信息的逻辑不正确地确定用户。它只是从数据库中读取它吗? 在顶部的页面上启用跟踪添加Trace =“true”
http://msdn.microsoft.com/en-us/library/94c55d08.aspx

并确保两个会话之间的aspnet会话ID确实是唯一的。它们不会结合在一起,所以其他东西在这里发生。