使用PrincipalSearcher获取AD组中的成员计数

时间:2016-01-29 16:54:40

标签: c# asp.net principalsearcher

环境:Visual Studio 2013,FrameWork 4.5,Telerik Controls,C#,WebForm应用程序

使用:System.DirectoryServices和System.DirectoryServices.AccountManagement

我正在制作搜索工具,以便用户可以在多个林/域中搜索活动目录组名称。

搜索返回一个或多个组的列表,我将该列表放在RadGrid(Telerik)中。网格的每一行都是AD组。我想显示一个附加信息,向用户显示该组中有多少(计数?)成员(用户)。

my_get::do_get
eof bad

感谢您的帮助

理查德

1 个答案:

答案 0 :(得分:1)

一种方法是在调用GroupPrincipal后使用.OfType()将搜索结果的类型指定为FindAll(),然后您可以将每个组的成员作为集合使用Members集合属性或GetMembers()方法,它有一个可选的布尔参数,用于指定是否需要递归搜索嵌套成员的组。此时,获取集合的大小。

List<AdGroup> listeGroupe = srch.FindAll()
    .OfType<GroupPrincipal>()
    .OrderBy(x => x.SamAccountName)
    .Select(x => new AdGroup()
    {
        SamAccountName = x.SamAccountName,
        Description = x.Description,
        Domain = domain,
        NbMember = x.Members.Count
    })
    .ToList();