Если вы используете .NET 3.5 и выше, вы должны проверить пространство имен System.DirectoryServices.AccountManagement
(S.DS.AM).Узнайте все об этом здесь:
Управление принципами безопасности каталогов в .NET Framework 3.5
По сути, вы можете определить контекст домена и легко находить пользователей и / или группыв AD:
// set up domain context - connects to the current default domain
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find user by name
UserPrincipal user = UserPrincipal.FindByIdentity("John Doe");
// find all users in your AD directory - set up a "query-by-example"
// template to search for; here: a UserPrincipal, which is not locked out
UserPrincipal userTemplate = new UserPrincipal(ctx);
userTemplate.IsAccountLockedOut = false;
// create a PrincipalSearcher, based on that search template
PrincipalSearcher searcher = new PrincipalSearcher(userTemplate);
// enumerate all users that this searcher finds
foreach(Principal foundPrincipal in searcher.FindAll())
{
UserPrincipal foundUser = (foundPrincipal as UserPrincipal);
// do something with the userTemplate
}
Новый S.DS.AM позволяет очень легко поиграть с пользователями и группами в AD:
Если вы не можете перейти на S.DS.AM,Что вам нужно сделать, это убедиться, что вы используете правильную строку LDAP для подключения к вашему серверу.Эта строка должна выглядеть примерно так:
LDAP://servername/OU=Users,DC=YourCompany,DC=com
servername
является необязательным - вы также можете не указывать это.Но строка LDAP должна состоять как минимум из одной строки DC=xxxxx
и, возможно, других сегментов LDAP.