在会话中存储对象时会话变量问题

问题描述:

我有一个登录页面,在该页面中,我验证了我的用户,并基于此验证将他们的用户信息存储在会话变量中,以便随时访问它。要做到这一点,我试图存储我的一个dbml生成的类“UserInfo”的实例。所以我填充类,然后将其存储在一个会话变量我称之为“用户”在会话中存储对象时会话变量问题

UserInfo u = new UserInfo(); 
    u = dal.RetrieveUser(userID, userPass) 
    Session["user"] = u; 

我与这个有问题是它似乎用户之间的混淆这些会话变量。或者更具体地说,它似乎总是从第一个用户变量中为每个后续登录用户存储信息。所以用户1的信息正在被拉入用户2,用户3等...

是我的问题我的类“UserInfo”是静态的?或者是什么导致了这种情况发生?我的UserInfo类如下所示:

public partial class UserInfo 
    { 
     ... 

编辑: 经过进一步审查,看来我的会话变量其实都是正常工作,但我的自定义菜单,实际上这个问题。

与会话对象相比,听起来更像DAL问题。你可以验证每次传递的userID是不同的,并且RetrieveUser函数使用传递的值而不是静态的?

+0

是的我检查了它,并确保它正在检索正确的信息并正确创建会话变量。 userID实际上只是登录文本框的值。 – 2009-01-14 18:59:11

您是在同一台计算机或单独的计算机上使用Web客户端测试此功能吗?例如,即使您打开了多个窗口或选项卡,默认情况下,FireFox将在单个进程中运行。尽管听起来很愚蠢,但我的一位同事在遇到同样的问题时并没有注意到这种现象。