установить сессию в page_load - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть ширина страницы этого кода на странице с именем 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 раза страницу с двумя именами пользователей на странице Default.aspx при втором чтении переменной Session ["User"], сохраненной в первый раз.

эс.

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

Почему?

Я видел, что если я помещаю кнопку на страницу журнала и извиняю процедуру на событии click, она работает.

Как я могу это исправить?

спасибо

1 Ответ

0 голосов
/ 11 февраля 2011

Не совсем понятно, о чем вы здесь спрашиваете.Глядя на свой код, вы жестко кодируете значение имени пользователя в «а», поэтому оно всегда будет «а».

string username = "a"; 

Если это не ваша проблема, я думаю, у вас есть какое-тосостояния гонки, когда ваши множественные операции чтения / записи в сеансе вызывают конфликт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...