Аутентифицировать пользователя из определенных групп на сервере LDAP с помощью C#

У меня есть несколько вложенных групп на сервере LDAP и пользователи в этих группах. Как я могу аутентифицировать пользователей с заданным именем пользователя и паролем, выполняя поиск только по группам (не по всему домену)? Связывает ли это?

1 ответ

Решение

Как вы подтвердили в разделе комментариев к этому вопросу, сервер LDAP, о котором вы говорите, является сервером Active Directory. Итак, мой ответ основан на этом известном ответе о том, как проверить имя пользователя и пароль в Active Directory, за исключением того, что я внес изменение, основанное на вашем требовании ограничить область поиска.

Если вы работаете в.NET 3.5 или новее, вы можете использовать System.DirectoryServices.AccountManagement конструктор PrincipalContext пространства имен (ContextType, String, String) и легко проверить свои учетные данные:

// create a "principal context"
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOUR.DOMAIN",
             "OU=Where,OU=You,OU=Wanna,OU=Search,DC=YOUR,DC=DOMAIN"))
   // change your container to a base OU where all your users are located.
{
    // validate the credentials
    bool isValid = pc.ValidateCredentials("myuser", "mypassword");
}
Другие вопросы по тегам