W środowisku, w którym około 100 użytkowników loguje się do witryny z uwierzytelnianiem formularzy, wywoływanie HttpContext.Current.User.Identity.Name zwraca poprawnie zalogowanego użytkownika .Problem z HttpContext.Current.User.Identity.Name
Jednak w 10% przypadków zwracane są nieprawidłowe informacje o pełnej nazwie użytkownika. Nigdy nie miałem takiego problemu na mojej maszynie wytrzymałościowej, zdarza się to tylko w produkcji. Nie mogę odtworzyć tego samego środowiska z wieloma użytkownikami na moim komputerze testowym.
Logika tej aplikacji:
1) użytkownik wprowadzi nazwę użytkownika i przekazać, informacja jest sprawdzana poprzez SQL DB rozmowy, jeśli mecz, użytkownik jest uwierzytelniony poprzez FormsAuthentication.RedirectFromLoginPage (podając nazwę użytkownika, false)
FormsAuthentication.SetAuthCookie(user.SYS_Users_ID.ToString(), false);
if (Request["ReturnURL"] == null)
FormsAuthentication.RedirectFromLoginPage(user.SYS_Users_ID.ToString(), false);
else
Response.Redirect("/" + SysConfig.ApplicationName + appConfig.DefaultPages.DefaultPage);
2) Po przekierowaniu umieścić pełną nazwę użytkownika w ukrytym polu
if (!IsPostBack)
userFullName.Value = Helper.GetCurrentUserFullName();
...
public static string GetCurrentUserFullName()
{
string _userFullName = string.Empty;
try
{
_userFullName = new AgrotMasofim.DAL.Users.Users().GetUserFullName(GetCurrentUserID());
}
catch (Exception ex)
{
Logs.WriteToFileLog(string.Empty,ex);
}
return _userFullName;
}
public static Decimal GetCurrentUserID()
{
Decimal _userID = 0;
if (HttpContext.Current.User != null)
{
try
{
_userID = Convert.ToDecimal(HttpContext.Current.User.Identity.Name);
}
catch (Exception ex)
{
Logs.WriteToFileLog(string.Empty, ex);
}
}
return _userID;
}
3) na wszystkich stronach wizyt użytkowników, jego/h er info jest wyświetlane wewnątrz Etykiety, która znajduje się na stronie wzorcowej. Jest ona wyświetlana na etykiecie, która jest na stronie wzorcowej. Jest to prawie cały czas. Jakieś pomysły, które mogą być przyczyną awarii od od czasu do czasu?
Pokaż nam kod metody "GetCurrentUserFullName()". – tvanfosson
Co masz na myśli przez złe informacje? Czy to imię kogoś innego? Czy jest pusty? – Aliostad
Jak jest określona zmienna userFullName? –