2009-05-19 30 views
11

Estoy en una aplicación ASP.NET utilizando la Autenticación de Windows.Obtener el nombre para mostrar del usuario de WindowsIdentity

Estoy usando HttpContext.Current.User.Identity.Name para obtener el nombre de usuario del usuario autenticado actualmente, lo que me da un nombre de usuario con el formato DOMINIO \ NOMBRE DE USUARIO. Esto está funcionando bien.

¿Hay una manera fácil de convertir esto a un nombre para mostrar (por ejemplo, "Richard Gadsden") como el que aparece en la parte superior de mi menú de inicio en XP?

Si tengo que hacerlo, supongo que puedo ir a través de System.DirectoryServices y consultar en ADSI, pero seguramente hay una manera más fácil?

Respuesta

1

Supongo que ADSI es el camino a seguir. Es bastante fácil. No veo una manera más fácil. Simplemente solicite LDAP://<SID=user-sid> y obtenga la propiedad de nombre distinguido.

13

hay una manera más fácil ahora, utilice System.DirectoryServices.AccountManagement

Imports System.DirectoryServices.AccountManagement 

... 

    Dim CurrentUser As UserPrincipal = UserPrincipal.Current 
    Dim DisplayName As String = CurrentUser.DisplayName 
+1

Esto ayuda solo si puede obtener UserPrincipal del objeto WindowsIdentity. La pregunta se basa en trabajar en un objeto WindowsIdentity y extraer el nombre de usuario de él. Puedo ver cómo se puede obtener un WindowsPrincipal desde un objeto WindowsIdentity, pero no se puede encontrar cómo obtener un UserPrincipal. – Veverke

+0

Descubrí [aquí] (http://stackoverflow.com/questions/2808955/can-i-get-active-directory-attributes-from-the-windowsprincipal/2809817#2809817) que puede obtener un UserPrincipal simplemente basado en un dominio. Entonces su respuesta ayuda (mi downvote ahora está bloqueado, sin embargo ... Por favor edite su respuesta con cualquier cambio menor, así me permitirán eliminar mi downvote (las políticas de SO ...). – Veverke

Cuestiones relacionadas