我将当前用户的用户名插入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();
}