Pesquisando usuários em vários domínios do Active Directory
Eu estou usando o System.DirectoryServices.AccountManagement para fornecer a funcionalidade de pesquisa do usuário.
A empresa tem vários domínios do AD específicos da região: AMR, EUR, JPN etc.
O seguinte funciona para o domínio EUR, mas não retorna usuários de outros domínios (naturalmente):
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();
No entanto, se eu segmentar o diretório inteiro, ele não retornará os usuáriosqualquer dos domínios específicos da região:
var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=mycorp,DC=com");
Como pesquiso o diretório inteiro?
Atualizar
Leia em "Como as pesquisas do Active Directory funcionam":
http://technet.microsoft.com/en-us/library/cc755809(v=ws.10).aspx
Se eu sufixo o nome do servidor com a porta 3268, ele pesquisa no Catálogo Global:
var context = new PrincipalContext(ContextType.Domain, "mycorp.com:3268", "DC=mycorp,DC=com");
No entanto, é muito, muito lento. Alguma sugestão sobre como melhorar o desempenho?