c# - 按用户名搜索整个 Active Directory 林

标签 c# active-directory

我的组织拥有由多个域名组成的事件目录林业。我需要编写一个应用程序以通过用户 ID 查找用户。

        string username = "test_user_id";

        DirectoryEntry entry = new DirectoryEntry("LDAP://one_of_the_domain");
        DirectorySearcher dSearch = new DirectorySearcher(entry);
        dSearch.Filter = "(&((&(objectCategory=Person)(objectClass=User)))(samaccountname=" + username + "))";
        SearchResult result = dSearch.FindOne();

        if (result != null)
        {
            var email = result.Properties["mail"];
            Console.WriteLine(email[0]);
        }

上面的示例代码将允许我在 one_of_the_domain 内搜索用户。但是有没有一种方法可以在整个事件目录林中找到用户?

最佳答案

使用 Forest 类获取当前的全局目录,然后您可以在其中获取对将搜索整个森林的 DirectorySearcher 的引用。

    var currentForest = Forest.GetCurrentForest();
    var gc = currentForest.FindGlobalCatalog();

    using (var userSearcher = gc.GetDirectorySearcher())
    {
      userSearcher.Filter = 
"(&((&(objectCategory=Person)(objectClass=User)))(samaccountname=" + username + "))";
            SearchResult result = userSearcher.FindOne();

    }

关于c# - 按用户名搜索整个 Active Directory 林,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333823/

相关文章:

c# - 在运行时计算百分比

c# - 在 ASP.NET MVC4 中注入(inject)

Python-ldap 可以从 python 控制台连接到事件目录,但不能连接到应用程序

node.js - 使用azure隐式流检索oauth访问 token

c# - 弹出窗口为 View 中的每个窗口显示相同的结果

c# - 从二进制数据中读取某些数字

c# - 调用时,.exe 进程未从 C# 应用程序运行

c# - 搜索 Active Directory 并在 C# 中的标签中返回 null 或 ""(如果属性为空)

python - 在 Python Web 应用程序中允许单点登录需要什么?

java - 混淆密码 LDAP AD