2016-06-03 13 views
1

교장을 어떻게 받아 들여 그룹인지 확인하십시오. 또는 회원이 있습니까?AccountManagement가 Principal GroupPrincipal입니까?

using(var ctx = new PrincipalContext(ContextType.Domain, "some.domain.com", "DC=some,DC=domain,DC=com")) 
{ 
    var group = GroupPrincipal.FindByIdentity(ctx, IdentityType.DistinguishedName, "some long distinguishedname"); 
    if(group != null) 
    { 
     var subgroups = group.GetMembers().Where(m => m.[IS A GROUP]) 
     foreach (var principal in group.GetMembers()) 
     { 
      Console.WriteLine(principal.DistinguishedName); 
     } 
    } 

} 
+0

내가 생각 답변을 찾았습니다 : http://stackoverflow.com/questions/6354807/how-to-know-if-directoryentry-is-a-user-or-a-group –

답변

2

당신은 as 키워드를 사용하여 Principal을 "변환"수 - 그것은 작동하는 경우 해당 개체가 정말 GroupPrincipal 경우, 유효한 값을 얻을 것이다, 그렇지 않으면 null :

var group = GroupPrincipal.FindByIdentity(ctx, 
              IdentityType.DistinguishedName, 
              "some long dn") as GroupPrincipal; 
                  ****************** 

if (group != null) 
{ 
    // now you *know* that it *IS* in fact a "GroupPrincipal" 
    ..... 
}