【问题标题】:Finding user from 2 OU at Active Directory从 Active Directory 的 2 个 OU 中查找用户
【发布时间】:2017-03-22 11:25:21
【问题描述】:

我有一个 .Net 应用程序,它从特定 OU (ABCUsers) 中的活动目录中读取用户。以下是代码:

        string DomainIP = "some domain IP";
        string ContainerConnectionString = "OU=ABCUsers,DC=test,DC=com";
        PrincipalContext domain = new PrincipalContext(ContextType.Domain, DomainIP, ContainerConnectionString, ContextOptions.SimpleBind);

        PrincipalSearcher searcher = new PrincipalSearcher();
        UserPrincipal findUser = new UserPrincipal(domain);
        findUser.SamAccountName = "some username";
        searcher.QueryFilter = findUser;
        UserPrincipal foundUser = (UserPrincipal)searcher.FindOne();

上面的代码工作正常,但我需要更改代码,以便它检索用户,无论他/她是在 OU=ABCUsers 还是 OU=XYZUsers。

感谢任何帮助。

提前致谢

【问题讨论】:

    标签: .net active-directory


    【解决方案1】:

    如果您有两个容器,并且您想找到可能在其中一个的用户,那么您别无选择,只能在两个容器共有的上下文中搜索,即您两个容器所在的容器。在您的情况下,它是域的根:

    "DC=test,DC=com";
    

    【讨论】:

    • 是一个容器,不是2。域名是“test.com”,所以“test”是容器,“com”是子容器。我不是 AD 方面的专家,所以如果我使用了错误的术语,请见谅
    • 一个OU是一个容器;在您的示例中,您正在处理三个容器:域根、ABCUsersXYZUsers
    • 我觉得我有点困惑。上面的代码在“test.com”域和“ABCUsers”OU 中搜索用户时有效。我需要同样的东西,而不是只在 ABCUsers 中搜索,我还需要它在 XYZUsers 中搜索。我是否可以提供任何其他信息来揭示这种困惑?
    • 我想告诉你的只是将"OU=ABCUsers,DC=test,DC=com" 更改为"DC=test,DC=com"
    • "DC=test,DC=com" 将搜索域中的所有 OU,因此如果我有第三个名为 "123Users" 的 OU,它也会在其中搜索。这也将要求用于运行程序的用户拥有整个域的权限,但我们只获得 ABCUsers 和 XYZUsers 的权限
    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多