1

J'essaie de créer un groupe A et de l'ajouter au groupe B. Cela échoue, disant que le groupe A est introuvable (bien que je puisse vérifier qu'il est vraiment créé). Il semble y avoir un délai entre la création du groupe et le moment où il peut être trouvé par une recherche. Voici mon code:LDAP/AD: Création du groupe A et ajout au groupe B échoue

//1) create groupA 
using (var group = ou.Children.Add("CN=" + AdConnection.EscapeLdapString(groupAName), "group")) 
{ 
    group.Properties["samAccountName"].Value = groupAName; 
    group.CommitChanges(); 
} 

//2) add groupA to groupB 
using (var pc = new PrincipalContext(ContextType.Domain, domain.Name, domain.Username, domain.Password)) 
{ 
    using (var groupB = GroupPrincipal.FindByIdentity(pc, IdentityType.Guid, Guid)) 
    { 
     groupB.Members.Add(pc, IdentityType.SamAccountName, groupAName); //throws a NoMatchingPrincipalException 
     groupB.Save(); 
    } 
} 

Si je vous écris cela comme deux programmes, et exécuter une partie 1, attendez un certain temps, puis exécuter plus tard partie 2, cela fonctionne. Je pourrais probablement répéter la partie 2 jusqu'à ce que le groupe A soit trouvé, mais je voudrais éviter cela. Y a-t-il un moyen déterministe de le faire? Par exemple, puis-je spécifier que groupA est un membre de groupeB lorsque je le crée?

Répondre

0

Résolu ceci en créant un groupeA avec new GroupPrincipal(pc, groupName), en l'enregistrant, puis en recherchant le groupe B en utilisant le même PrincipalContext.

Questions connexes