2011-02-10 5 views
0

Я широтно страницу этот код на странице вызываемым Log.aspx:набор сессии в Page_Load

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 [«Пользователь»], был сохранен в первый раз.

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 

Почему?

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

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

благодаря

+1

Я думаю, что ваше задание и то, что ваш код на самом деле делает, - это две очень разные вещи. Также неясно, как должен выполняться ваш код _should_. –

ответ

0

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

string username = "a"; 

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

Смежные вопросы