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"]);
}