Будьте осторожны с тем, как вы получаете DirectoryEntry de
. С точки зрения чистого LDAP, во время поиска в каталоге лучше указывать атрибуты, которые вы действительно хотите получить. Я знаю, что большинство разработчиков считают, что все атрибуты должны быть возвращаемыми, но с точки зрения LDAP это не так очевидно:
/* Connection to Active Directory
*/
string sFromWhere = "LDAP://WM2008R2ENT:389/dc=dom,dc=fr";
DirectoryEntry deBase = new DirectoryEntry(sFromWhere, "dom\\jpb", "root.123");
DirectorySearcher dsLookFor = new DirectorySearcher(deBase);
dsLookFor.Filter = "(CN=user1 Users)";
dsLookFor.SearchScope = SearchScope.Subtree;
dsLookFor.PropertiesToLoad.Add("cn");
// Add one line for each property you need.
dsLookFor.PropertiesToLoad.Add("...");
SearchResultCollection srcUsers = dsLookFor.FindAll();
С точки зрения имен атрибутов вам лучше обратиться к Схема Active Directory и специальности Все атрибуты .
Чтобы связать атрибут с полем ввода в MMC Active-Directory пользователя и компьютера, вы можете использовать LDP.EXE (который встроен в W2K8 и поставляется из набора ресурсов в W2K3). Еще один интересный инструмент - Apache Directory Studio . Он работает на всех платформах (Linux (MAC), Microsoft) и позволяет просматривать каталог и схему.