AccountManagement - это основная группа?

Как взять принципала и посмотреть, является ли он группой? или что у него есть члены?

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

}

person Chris Hayes    schedule 03.06.2016    source источник
comment
думаю, я нашел ответ: stackoverflow.com/questions/6354807/   -  person Chris Hayes    schedule 03.06.2016


Ответы (1)


Вы можете «преобразовать» Principal с помощью ключевого слова as — если это сработает, если этот объект действительно является 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"
    .....
}
person marc_s    schedule 03.06.2016