Récupérer les détails d'un utilisateur depuis l'Active Directory

 01/01/2019 |   Admin |  C#


Activer les roles dans le web.config (System.Web) :

<authentication mode="Windows" /> 

<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
Ajouter les références suivantes :
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;

1) Récupérer le login de l'utilisateur :

public static string GetUserName()
{
return HttpContext.Current.User.Identity.Name;
}

 

2) Récupérer le prénom de l'utilisateur :

public static string GetFirstName()
{
string principal = GetUserName();
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(ctx,principal);
return user.GivenName;
}

A partir de cette méthode, tout est récupérable, il suffit de changer le GivenName par la propriété correspondante.

 

3) Tester un droit pour l'utilisateur connecté :

Après avoir ajouté cette chaine dans le web.config :
<appSettings>
……
<add key="admin" value="Domaine\Droit"/>
</appSettings> 
public static bool UserIsAdmin()
{
return Roles.IsUserInRole(ConfigurationManager.AppSettings["admin"]);
}