protected void btnLogin_Click(object sender, EventArgs e)
    {
        String strID = tbId.Text;
        String strCompanyCode = tbCompanyCode.Text;
        String strPassword = tbPassword.Text;        Jsmstc.Model.BppManager model = bllBppManager.GetModel(strID, strCompanyCode);
        if (model == null || strPassword != model.Password)
        {
            labMsg.Text = "用户不存在或密码错误";
            return;
        }
        Session["Se_EnterpriseLogin"] = model;        Server.Transfer("MainFunctionMenu.aspx");
    }当用户登录成功后,Session["Se_EnterpriseLogin"] = model 这句代码将model对象赋给Session["Se_EnterpriseLogin"] ,当多个用户登录的时候,也是执行Session["Se_EnterpriseLogin"] = model 这句代码。
我的问题是:不同的用户登录成功后都把一个不同的model对象赋给Session["Se_EnterpriseLogin"],那么怎么知道哪个用户的信息是什么?是怎么区别各个用户的?当第2个用户登录的时候,也会执行Session["Se_EnterpriseLogin"] = model 这行代码,那这会不会改变Session["Se_EnterpriseLogin"] 的值,第一个登录的用户的session会不会消失呢?还有,session是不是只存储在服务器上啊?请高手详细解释一下执行过程!谢谢!

解决方案 »

  1.   

    Session是每个用户专用的.用户A的Session和用户B的Session是独立的。所以更新A用户的Session["Se_EnterpriseLogin"]不会印象B用户的Session["Se_EnterpriseLogin"]
      

  2.   

    每个用户登陆都会分配一个独立的session,并且存放在服务器端,
    各个用户见的session不受影响,如果想实现你的操作,
    可以用数据表来记录,其中sessionid作为一个登陆用户的唯一主键
      

  3.   

    SESSION是128位加密的,每个人都不同,楼主结帐
      

  4.   

    能不能介绍一下是怎么实现每一个用户的session是不同的,背后的原理是什么啊?非常感谢!!!
      

  5.   

    session会自动区分不同用户,采用seesionid来区分的。
    asp.net下,默认时,是采用cookie来保存sessionid。sessionid是随机产生的,一个浏览器访问你的网站后,自动产生。
      

  6.   

    Session的字面意思是"会话",而这个会话创建于每一个客户端的请求.也就是说,1万个用户登陆网站就会产生一万个Session对象,他们的对象互不影响。
    例子:
    用户A是管理员,登陆后使得:
    Session["rank"]="admin"
    B是普通用户
    Session["rank"]="member"。在任何一个页面,我们可以通过
    if(session["rank"]=="admin")
    {
    }来判断是否是管理员。
      

  7.   

    那是不是每个用户登录后,服务器都会为每个用户分配一个单独的session,这个session存在于服务器上啊?是不是每个用户的session的名字都不同啊?那么这个名字叫什么呢?是如何产生的?sessionid是存在于服务器上还是存在客户端撒谎那个啊?非常感谢!!!
      

  8.   

    Session是每个用户专用的. 用户A的Session和用户B的Session是独立的。 所以更新A用户的Session["Se_EnterpriseLogin"]不会印象B用户的Session["Se_EnterpriseLogin"]
      

  9.   

    sessionid是存在于服务器上还是存在于客户端啊?
      

  10.   

    一般来说存在客户端,还有看你在web.config文件下如何配置sessionstate节 ,如果 加上cookieless = true ,sessionid存在请求地址的后面
      

  11.   

    关键问题:每个用户登录后,都在服务器端为它分配一个独立的session,那么这些session之间如何区别呢?我这个项目里的代码是
    Session["Se_EnterpriseLogin"] = model; 如果要区别它们的话,那么这些存在于服务器端的session的名字应该不同才能区别。
    那么他们的名字是怎么产生的呢?非常感谢!!!
      

  12.   

     lz,不是回答你了么,怎么区分的.session会自动区分不同用户,采用seesionid来区分的。 
    asp.net下,默认时,是采用cookie来保存sessionid。sessionid是随机产生的,一个浏览器访问你的网站后,自动产生。