1

groupA를 만들고 groupB에 추가하려고합니다. 이것은 groupA를 찾을 수 없다는 말은 실패합니다. (정말로 생성되었음을 확인할 수는 있지만). 그룹 생성과 검색을 통해 발견 될 수있는 시점 사이에 지연이있는 것으로 보입니다. 여기에 내 코드입니다 : 나는 두 개의 프로그램으로 이것을 쓰고, 2 부 실행 후 다음 파트 1을 실행하는 동안 기다린 경우LDAP/AD : 그룹 A를 만들고 그룹 B에 추가하지 못했습니다.

//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(); 
    } 
} 

이 작동합니다. 그룹 A가 발견 될 때까지 파트 2를 반복적으로 실행할 수는 있지만이를 피하고 싶습니다. 이 결정적인 방법이 있습니까? 예를 들어 groupA를 groupB의 구성원으로 지정하면됩니다.

답변

0

new GroupPrincipal(pc, groupName)으로 groupA를 생성하고이를 저장 한 다음 동일한 PrincipalContext를 사용하여 groupB를 찾음으로써이를 해결했습니다.