1
DirectoryEntry deEntry = new DirectoryEntry("LDAP://test.com");
DirectorySearcher dsSearcher = new DirectorySearcher(deEntry);
dsSearcher.Filter = "(&(objectclass=user)(objectcategory=person))";

当我应用该过滤器时,用户不会出现。但我检查了他的属性,这些属性具有这些值。

但是当我在过滤器中添加他的姓氏时,他确实出现了。

dsSearcher.Filter = "(&(objectclass=user)(objectcategory=person)(sn=harper))";

这是一张带有 deubg 信息的图片,显示他的属性设置正确。

在此处输入图像描述

我不知道是怎么回事。有任何想法吗?

4

1 回答 1

1

如果您使用的是 .NET 3.5 及更高版本,则应查看System.DirectoryServices.AccountManagement(S.DS.AM) 命名空间。在这里阅读所有相关信息:

基本上,您可以定义域上下文并在 AD 中轻松找到用户和/或组:

// set up domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
    // find a user
    UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "harper");

    if(user != null)
    {
       // do something here....     
    }
}

新的 S.DS.AM 使得在 AD 中与用户和组一起玩变得非常容易!

于 2014-05-02T18:20:04.883 回答