会话数据覆盖了Asp.net MVC

时间:2014-08-14 11:32:55

标签: asp.net-mvc session

我将当前用户的用户名插入Session,然后当用户注销时,我将会话用户名数据保存到数据库表中,如

  HttpContext.Current.Session["username"]= Username // Inserting User name

因此,当用户“James”登录到Web应用程序时,“James”作为用户名将同时插入到Session中,而另一个用户“Tom”则登录到该网站。在Session [“Username”]中插入名称“Tom”。到目前为止,这是好的。

现在,当Tom注销时,用户名“Tom”将保存到表中,但是当原始用户“James”注销时,Session变量将保存为“Tom”本身而不是“James”。这怎么可能?我正在保存到数据库,如

       context.USERNAME=HttpContext.Current.SESSION["username"].ToString().

怎么可能,会话覆盖,它应该保持单独的会话状态,出了什么问题?请帮助我。

更新的

public class Authentication()
{
    public void AuthenticateUser(Login model)
    {
         SampleDb Context=new SampleDb(); 
         var userDetails=Context.RL_USERS
             .Where(m => m.USER_ID == userName && m.RES_TYPE == model.Type)
             .FirstOrDefault();

         HttpContext.Current.Session["username"]=userDetails.USER_NAME; //Inserting Here

    }
}

以及用户注销时

public ActionResult Logout()
{
    string username=Session["username"].ToString()
    TrackUser user=new TrackUser()
    { 
        Username=username;
    }

    sampleDb.TrackUser.Add(user);
    sampleDb.savechanges();
}

0 个答案:

没有答案