La solution de Nick Craver ne fonctionne pas pour moi dans .NET 4.0. Je reçois une erreur concernant un AppDomain non chargé. Au lieu d'utiliser cela, je l'ai utilisé (nous n'avons qu'un seul domaine). Cela vérifiera les groupes de groupes ainsi que l'appartenance directe à un groupe.
using System.DirectoryServices.AccountManagement;
...
using (var ctx = new PrincipalContext(ContextType.Domain, yourDomain)) {
using (var grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, yourGroup)) {
bool isInRole = grp != null &&
grp
.GetMembers(true)
.Any(m => m.SamAccountName == me.Identity.Name.Replace(yourDomain + "\\", ""));
}
}