0

我需要从域 MYDOMAIN.CC 中的 Active Directory 中获取属于某个组(我们称之为“SourceGroup”)的所有用户对象。这包括解析嵌套组(递归)。

我正在与 UserPrincipal 和 PrincipalContext 合作来实现这一目标。GetMember(true) 自动解析组并且工作正常。

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))//, url + ":3268"))
using (GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, groupName))
{
    var users = grp.GetMembers(true)
        .AsParallel()
        .Select(member => PersonPrincipal.FindByIdentity(ctx, IdentityType.Guid, member.Guid.Value.ToString()))
        .Where(user => user != null && userFilterFunction == null || userFilterFunction(user));

    return users.ToList();
}

现在,当 MYDOMAIN.CC 的“SourceGroup”从另一个域(即 US.MYDOMAIN.CC)获取成员时出现了问题。然后我更改了查询以搜索全局目录:

new PrincipalContext(ContextType.Domain, "MYDOMAIN.CC:3268"))

它现在适用于直接放入 MYDOMAIN.CC\SourceGroup 的 US.MYDOMAIN.CC 用户。但问题是它现在忽略了嵌套组(它只返回直接在组中的用户)。

我有一种感觉,这可能是因为全局编录没有组成员身份?有谁知道允许我跨域获取组成员的方法?

4

0 回答 0