使用全局编录中的DirectorySearcher查找DOMAIN \ username

时间:2014-01-14 15:49:45

标签: dns global username catalog directorysearcher

我有一个多域活动目录环境,需要根据DOMAIN \ username找到用户。

以下代码非常适合通过SID查找用户。

DirectorySearcher directorySearcher = new DirectorySearcher(new DirectoryEntry(
    "GC://" + Forest.GetCurrentForest().Name));

directorySearcher.Filter =
    "(&" +
        (&(objectCategory=person)(objectClass=user)) +
        "(objectSid=" + this.SID + "))";
var result = directorySearcher.FindOne();

但现在我遇到的情况是我所拥有的是DOMAIN \用户名。

过滤器的内容是什么?

我考虑的一种方法是连接到特定域而不是全局编录,并通过不合格的SAMAccountName进行搜索。但我的问题是我不知道如何从DOMAIN到DC = Domain,DC = Org或domain.org。

当我在Active Directory用户和计算机中时,通过DOMAIN \ username搜索整个目录似乎没有问题。幕后发生了什么?

1 个答案:

答案 0 :(得分:2)

这是缺失的部分。

using System.Security.Principal;

var sid = (SecurityIdentifier)new NTAccount(userName).Translate(
    typeof(SecurityIdentifier));