miércoles, 28 de abril de 2010

Cuando en identity no devuelve el nombre del usuario.

He hecho una pequeñito método de la clase de seguridad (utilizando la técnica de TDD, muy maja por cierto) para que me devuelva el nombre del usuario identificado en el Directorio Activo.
/// <summary>
/// Devuelve el nombre del usuario del Directorio Activo.
/// Eliminando el dominio.
/// </summary>
/// <returns></returns>
public static string usuarioAD()
{
IPrincipal user = System.Threading.Thread.CurrentPrincipal;

string userName = user.Identity.Name;
int posicionBarraSeparacion = userName.IndexOf('\\');

userName = userName.Substring(posicionBarraSeparacion +1);

return userName;
}


Lo curioso es que cuando lanzaba el test, me daba verde. Pero al probarlo en el localhost o en el servidor de desarrollo, no me devolvía más que una cadena vacía.

Dándole una vueltas a la cabeza me acordé que el problema vendría del tipo de identificación del navegante en el IIS y, efectivamente, tenía configurado el Directorio Virtual con acceso anónimo. En cuanto lo he configurado como Autenticación de Windows, todo solucionado.


image

No hay comentarios: