1

Je dois vérifier si les utilisateurs qui se connectent à l'application de console que je fais font partie d'un DL (appelons-le DL-A).Comment vérifier si l'utilisateur fait partie d'un groupe AD? (même groupe dans un groupe)

Certains utilisateurs ne font pas directement partie de DL-A, mais d'autres DL membres de DL-A. Le code que je travaille ne vérifie que les groupes dont l'utilisateur est directement membre. Comment puis-je vérifier cela?

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, domain); 
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, username); 
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "DL-A"); 

if (user != null) 
{ 
    if (user.IsMemberOf(group)) 
    { 
     ... 
    } 
} 

Répondre

0

Une façon vous pouvez voir si l'utilisateur est un membre d'un groupe imbriqué est d'obtenir tous les utilisateurs d'un groupe recursively. J'utilise user et group de votre code:

.... 

if (group != null) 
{ 
    var users = group.GetMembers(true); //this will get nested users 
    var contains = users.Contains(user); 
    if (contains) 
    { 
     //user found 
    } 
} 

...