En un entorno donde unos 100 + usuarios inician sesión en un sitio con la autenticación formas, llamando HttpContext.Current.User.Identity.Name devuelve el usuario conectado correctamente .Problema con HttpContext.Current.User.Identity.Name
Sin embargo, el 10% de las veces se devuelve la información incorrecta del Nombre completo del usuario. Nunca tuve ese problema en mi máquina de prueba, solo ocurre en producción. No puedo recrear el mismo entorno con muchos usuarios en mi máquina de prueba.
La lógica de esta aplicación:
1) El usuario introduce nombre de usuario y pase, la información se busca a través de llamada SQL DB, si está partido, el usuario se autentica a través de FormsAuthentication.RedirectFromLoginPage (nombre de usuario, falsa)
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) Después de redirección pongo el nombre completo del usuario en el campo oculto
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) en todas las páginas que el usuario visita, su/h la información de er se muestra dentro de la etiqueta que está en la página maestra
lblUserName.Text = HttpUtility.HtmlDecode("Hello " + userFullName.Value);
Esto funciona casi todo el tiempo. ¿Alguna idea de por qué podría estar fallando de de vez en cuando?
Por favor, muéstrenos el código de su método 'GetCurrentUserFullName()'. – tvanfosson
¿Qué quiere decir con información incorrecta? ¿Es el nombre de otra persona? ¿Está en blanco? – Aliostad
¿Cómo se declara la variable userFullName? –