【问题标题】:Searching for users across multiple Active Directory domains跨多个 Active Directory 域搜索用户
【发布时间】:2012-12-07 17:15:50
【问题描述】:

我正在使用 System.DirectoryServices.AccountManagement 来提供用户查找功能。

该企业有几个特定于区域的 AD 域:AMR、EUR、JPN 等。

以下内容适用于 EUR 域,但不会返回来自其他域的用户(自然):

var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=eur,DC=mycorp,DC=com");

var query = new UserPrincipal(GetContext());

query.Name = "*Bloggs*";

var users = new PrincipalSearcher(query).FindAll().ToList();

但是,如果我定位整个目录,它不会返回来自任何区域特定域的用户:

var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=mycorp,DC=com");

如何搜索整个目录?

更新

阅读“Active Directory 搜索的工作原理”:

http://technet.microsoft.com/en-us/library/cc755809(v=ws.10).aspx

如果我在服务器名称后面加上端口 3268,它会搜索全局目录:

var context = new PrincipalContext(ContextType.Domain, "mycorp.com:3268", "DC=mycorp,DC=com");

但是它非常非常慢。有关如何提高性能的任何建议?

【问题讨论】:

  • 想通了。当我允许时会发布答案。
  • 您能否发布您为使其正常工作所做的工作?
  • 将端口号添加到域字符串和容器参数使它对我有用,谢谢
  • "要搜索全局编录,而不是本地域分区,您必须在您正在使用的搜索工具中指定端口 3268,而不是标准 LDAP 端口端口 389。您指定的任何时间端口 3268,您正在全局目录中搜索。” technet.microsoft.com/en-us/library/cc755809%28v=ws.10%29.aspx
  • @RobertMorgan 您找到任何提高性能的解决方案了吗?

标签: c# active-directory


【解决方案1】:

具有初始通配符(*Bloggs*) 的查询会很慢,除非您在要查询的属性上有一个元组索引。默认情况下,AD 中的所有属性都没有此设置。最好不要使用初始通配符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多