Я использую 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");
Однако это очень, очень медленно. Любые предложения о том, как повысить производительность?