2009-05-19 12 views
11

Je suis dans une application ASP.NET utilisant l'authentification Windows. J'utilise HttpContext.Current.User.Identity.Name pour obtenir le nom d'utilisateur de l'utilisateur actuellement authentifié, ce qui me donne un nom d'utilisateur au format DOMAIN \ USERNAME. Cela fonctionne bien.Obtention du nom d'affichage de l'utilisateur à partir de WindowsIdentity

Existe-t-il un moyen facile de convertir cela en un nom d'affichage (par exemple "Richard Gadsden") comme celui qui apparaît en haut de mon menu de démarrage dans XP?

Si je dois, je suppose que je peux passer par System.DirectoryServices et interroger dans ADSI, mais sûrement il y a un moyen plus facile?

Répondre

1

Je suppose que ADSI est la voie à suivre. C'est plutôt facile. Je ne vois pas un moyen plus facile. Vous venez de demander LDAP://<SID=user-sid> et obtenir la propriété de nom distinctif.

13

Il y a un moyen plus facile maintenant, utilisez System.DirectoryServices.AccountManagement

Imports System.DirectoryServices.AccountManagement 

... 

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

Cela ne fonctionne que si vous pouvez sortir UserPrincipal de l'objet WindowsIdentity. La question repose sur le travail sur un objet WindowsIdentity - et l'extraction du nom d'utilisateur. Je peux voir comment on peut obtenir un WindowsPrincipal à partir d'un objet WindowsIdentity, mais ne peut pas trouver comment obtenir un UserPrincipal. – Veverke

+0

J'ai compris [ici] (http://stackoverflow.com/questions/2808955/can-i-get-active-directory-attributes-from-the-windowsprincipal/2809817#2809817) que vous pouvez obtenir un UserPrincipal basé simplement sur un domaine. Donc, votre réponse aide (mon downvote est maintenant verrouillé, cependant ... S'il vous plaît modifier votre réponse avec une modification mineure afin que je puisse supprimer mon downvote (politiques de SO ..). – Veverke

Questions connexes