我正在使用 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");
但是,它非常非常慢。关于如何提高性能的任何建议?