Это, вероятно, единственный способ диагностировать путаницу сессий!
лько недель назад к нам обратился один из наших клиентов, который сказал, что иногда, когда он создает действие, оно создается под чужим именем!
Мы сделали некоторые неполадки и не смогли ничего найти. Мы попросили пользователя связаться с нами в следующий раз, когда он столкнется с этими проблемами. Он связался с нами, и мы смогли устроить с ним встречу и увидеть проблему своими глазами.
Это была не только деятельность, он был признан кем-то еще в заявке. У него был доступ ко всему, что должен был иметь другой человек. Это было тогда, когда мы поняли, что у нас сессия перепутана проблема.
Немного о нашем коде:
Как и в любом другом приложении, у нас есть простая страница входа, на которой пользователь вводит адрес электронной почты и пароль, и мы аутентифицируем их в нашей базе данных, и если они действительны, мы вызываем FormsAuthentication.SetAuthCookie (), чтобы сохранить текущий идентификатор пользователя в файле cookie, и мы его впускаем.
BL.User currentUser = BL.User.Authenticate(txtUsername.Text, txtPassword.Text);
if (currentUser != null)
{
this.Session["NumberOfLoginTried"] = "0";
FormsAuthentication.SetAuthCookie(currentUser.UserID.ToString(), chRememberMe.Checked);
Response.Redirect(FormsAuthentication.GetRedirectUrl(currentUser.UserID.ToString(), false));
}
Мы также используем следующий фрагмент кода для получения идентификатора зарегистрированного пользователя (текущего пользователя) в нашем приложении.
public static int GetCurrentUserID()
{
int userID = -1;
int.TryParse(HttpContext.Current.User.Identity.Name, out userID);
return userID;
}
И да, мы сделали нашу домашнюю работу и погуглили и увидели следующие две ссылки:
http://lionsden.co.il/codeden/?p=446
Смешивание сессий ASP.NET с использованием StateServer (SCARY!)
Мы отключили кэширование в режиме ядра и в режиме пользователя для файлов .aspx и .ascx, и это все еще происходит.
P.S. Приложение работает на Windows 2008 R2 с IIS 7.5. А мыНЕ используя сеанс без cookie.