我们正在使用DirectoryEntry来检索组成员资格详细信息。 memberOf属性包含组成员的cn。但是,我们的域中充满了cn与sAMAccountName不同的组。
我需要获取一个组成员的sAMAccountNames列表(包括通过成员组的成员身份等进行递归)。现在我查找memberOf属性,存储cn然后执行第二次LDAP查询以获取具有这些cns的对象的sAMAccountNames。
有没有更好的方法来实现这一目标?
答案 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);
}
}
}