我在页面中有一个页面宽度,名为Log.aspx:
protected void Page_Load(object sender, EventArgs e)
{
Session.Abandon();
Session.Clear();
string username = "a";
if (!String.IsNullOrEmpty(username))
{
db_user = db.CBR_User
.Include("CBR_MissioniGruppi")
.Include("Anagrafica_Dipendente.Extra_dipendente")
.Include("Anagrafica_Dipendente.Dati_Dipendente")
.FirstOrDefault(p => p.Anagrafica_Dipendente.Extra_Dipendente.Codice_Fiscale.Equals(username, StringComparison.OrdinalIgnoreCase));
Session["User"] = db_user;
Session["t_admin"] = null;
Response.Redirect("Default.aspx");
}
}
问题是,如果我使用2个用户名不同的页面启动2次 在Default.aspx页面第二次读取变量Session [“User”]第一次保存。
ES。
1)Launch Log.aspx with username = "a"
-> the session["User"] in Default page has the user with username a
2) Launch Log.aspx with username = "n"
-> the session["User"] in Default page has the user with username a
为什么?
我已经看到,如果我在日志页面中放置一个按钮并且我在点击事件上执行该程序,它就可以工作。
我该如何解决?
感谢
答案 0 :(得分:0)
你在这里问的问题并不完全清楚。看看你的代码,你很难将用户名的值编码为'a',所以它总是'a'。
string username = "a";
如果这不是你的问题,我会想象你有某种竞争条件,你对Session的多次读/写会导致冲突。