【问题标题】:set session in page_load在 page_load 中设置会话
【发布时间】:2011-06-24 23:53:42
【问题描述】:

我有一个页面宽度这个代码在一个叫做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

为什么?

我已经看到,如果我在日志页面中放置一个按钮并在点击事件上执行该过程,它就会起作用。

我该如何解决?

谢谢

【问题讨论】:

  • 我认为你的要求和你的代码实际上在做什么是两件非常非常不同的事情。也不清楚您的代码应该如何执行。

标签: c# asp.net session login


【解决方案1】:

这里并不完全清楚你在问什么。查看您的代码,您将用户名的值硬编码为“a”,因此它将始终为“a”。

string username = "a"; 

如果这不是你的问题,我想你有某种竞争条件,你对 Session 的多次读/写导致冲突。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2020-12-05
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多