In un ambiente in cui circa 100 + gli utenti accedono a un sito con l'autenticazione forme, chiamando HttpContext.Current.User.Identity.Name restituisce il corretto utente connesso .Problema con HttpContext.Current.User.Identity.Name
Tuttavia, il 10% delle volte viene restituito l'errore Nome utente completo. Non ho mai avuto problemi di questo tipo sulla mia macchina di prova, succede solo nella produzione. Non riesco a ricreare lo stesso ambiente con molti utenti sulla mia macchina di prova.
La logica di questa app:
1) L'utente inserisce il nome utente e passare, informazioni viene cercato tramite SQL DB chiamata, se incontro, l'utente viene autenticato tramite FormsAuthentication.RedirectFromLoginPage (nome utente, 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) Dopo redirect ho messo il nome completo dell'utente nel campo nascosto
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) su tutte le pagine le visite degli utenti, il suo/h le informazioni sono mostrate all'interno dell'etichetta che si trova sulla pagina principale
lblUserName.Text = HttpUtility.HtmlDecode("Hello " + userFullName.Value);
Questo funziona quasi sempre. Qualche idea sul perché potrebbe non essere disponibile a partire da ?
Mostraci il codice per il tuo metodo 'GetCurrentUserFullName()'. – tvanfosson
Cosa intendi per informazione errata? È il nome di qualcun altro? È vuoto? – Aliostad
Come viene dichiarata la variabile userFullName? –