如何在C#中的其他Active Directory域中添加用户?

时间:2008-11-24 19:51:21

标签: c# active-directory cross-domain

所以我的目标是能够将用户从一个Active Directory域添加到另一个Active Directory域中的另一个组。

我想在C#中这样做。我知道有一个System.DirectoryServices命名空间,其中包含与AD通信的类,但我找不到有关跨域添加用户的任何信息。

在环境中有两个具有相同父林的域控制器。两个域之间存在暂时信任,我们称之为域A和域B.

我可以使用Active Directory工具将用户从B添加到域A内的域本地或通用组。

有谁知道如何使用C#以编程方式执行此操作?

2 个答案:

答案 0 :(得分:1)

几年前我编写代码时,对我有用的是什么:

  1. 获取要添加成员的组的DirectoryEntry。
  2. 在DirectoryEntry组上调用Invoke,将参数“Add”作为方法名称和数组中成员的ADsPath传递。
  3. 一些示例代码在我的头顶:

    DirectoryEntry group = new DirectoryEntry(@"LDAP://CN=foo,DC=domainA");
    string memberADsPath = @"LDAP://CN=bar,DC=domainB";
    group.Invoke("Add", new Object[] {memberADsPath});
    

答案 1 :(得分:0)

您需要为Group创建DirectoryEntry对象。然后,将要添加到组中的用户的DN添加到组中的成员属性。例如:

DirectoryEntry group = new DirectoryEntry("LDAP://child.domain.com/cn=group,ou=sample,dc=child,dc=domain,dc=com");

string userDN = "cn=user,ou=sample,dc=domain,dc=com";

group.Properties["member"].Add(userDN);
group.CommitChanges();

可能是您遇到绑定到DirectoryEntry组的问题。在尝试添加组之前,请确保您可以读取该DE的属性,以确保成功绑定。