Je dois afficher uniquement le nom d'un utilisateur d'Active Directory, j'utilise
lbl_Login.Text = User.Identity.Name; //the result is domain\username
Cela montre le nom de l'utilisateur mais pas le vrai nom de l'utilisateur, j'ai vérifié d'autres questions et réponses liées ici mais je n'ai pas obtenu la solution.
Existe-t-il une propriété comme "User.Identity.Name" pour obtenir uniquement le nom de l'utilisateur?
Vous voulez le nom d'un utilisateur d'Active Directory. Essayez un code comme celui-ci:
string name ="";
using (var context = new PrincipalContext(ContextType.Domain))
{
var usr = UserPrincipal.FindByIdentity(context, User.Identity.Name);
if (usr != null)
name = usr.DisplayName;
}
ou ceci de social.msdn.Microsoft.com :
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.Current;
string displayName = user.DisplayName;
ou peut-être:
System.DirectoryServices.AccountManagement.UserPrincipal.Current.DisplayName;
L'espace de noms System.DirectoryServices.AccountManagement fournit un accès et une manipulation uniformes des principaux de sécurité des utilisateurs, des ordinateurs et des groupes à travers les multiples magasins principaux: services de domaine Active Directory (AD DS), services d'annuaire légers Active Directory (AD LDS) et Machine SAM (MSAM).
using System.DirectoryServices.AccountManagement;
string fullName = null;
using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
using (UserPrincipal user = UserPrincipal.FindByIdentity(context,"hajani"))
{
if (user != null)
{
fullName = user.DisplayName;
lbl_Login.Text = fullName;
}
}
}