2011-08-04 13 views
2

그룹이 존재하는 경우에도 GroupPrincipal.FindByIdentity가 null을 반환하는 이유는 무엇입니까?

GroupPrincipal group = GroupPrincipal.FindByIdentity(getPrincipalContext(), 
                 "TEST_DESTINATION_GRP"); 

반환 null을 것? 그룹 조직 구성 단위 아래에 TEST_DESTINATION_GRP이 있다는 사실을 알고 있습니다.

내 코드 :

private void addUserToGroup(string userName, string groupName) 
{ 
    try 
    { 
     UserPrincipal user = UserPrincipal.FindByIdentity(getPrincipalContext(), IdentityType.SamAccountName, "jcolon"); 
     GroupPrincipal group = GroupPrincipal.FindByIdentity(getPrincipalContext(), "TEST_DESTINATION_GRP"); 
     //just to show that I can access AD    
     ArrayList x = getUserGroups(userName); 

     foreach (var xy in x) 
     { 
      Console.WriteLine(xy); 
     }//I can access AD FINE 

     if (group == null) 
     { Console.WriteLine("Wtf!"); } 
     Console.WriteLine(user); 
     Console.WriteLine(group + "empty why!!!!"); 
    } 
    catch (Exception e) 
    { 
     //log e 
    } 
} 

private PrincipalContext getPrincipalContext() 
{ 
    PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Domain, sDomain,sDefaultOU);   
    return oPrincipalContext; 
} 

위의 코드의 출력은 다음과 같습니다

 
Domain Users 
GRP_ADMIN_SERVER 
GRP_PROG_III 
CTXXA-FlexUser 
CTXXA-Users 
Wtf 
Abanico, [email protected] 
empty why!!!! 

어떤 생각?

답변

5

getPrincipalContext 방법에서 sDomainsDefaultOU의 값은 무엇입니까 ??

나는 다음과 같은 단계를 시도 할 것입니다 : 모든 도메인 또는 OU 이름없이 PrincipalContext를 구축

  1. -이 경우, 기본 도메인과 최상위 노드가 사용됩니다 :

    PrincipalContext ctx = new PrincipalContext(ContextType.Domain); 
    

    검색 - 찾고있는 그룹을 찾습니까?

  2. 도메인 및 sDefaultOU 값이 올바른지 확인하십시오. 주체 컨텍스트를 하나의 OU에 연결하는 경우 다른 OU를 검색 할 수 없으며 (연결하려는 OU의 하위 OU가 아닌 경우)).

관련 문제