从memberOf属性中检索AD sAMAccountNames

时间:2015-03-04 01:00:19

标签: c# active-directory ldap

我们正在使用DirectoryEntry来检索组成员资格详细信息。 memberOf属性包含组成员的cn。但是,我们的域中充满了cn与sAMAccountName不同的组。

我需要获取一个组成员的sAMAccountNames列表(包括通过成员组的成员身份等进行递归)。现在我查找memberOf属性,存储cn然后执行第二次LDAP查询以获取具有这些cns的对象的sAMAccountNames。

有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

我不确定你是如何获得CN的,但是当我需要来自一个团体的SamAccountNames时,我通常会写这样的东西,

var samNames = new List<string>();
using (var group = GroupPrincipal.FindByIndentity(principalContext, "GroupName"))
{
     if (group != null)
     {
         var users = group.GetMembers(true);
         foreach (UserPrincipal user in users)
         {
             samNames.add(user.SamAccountName);
         }
     }
}