Аутентифицировать пользователя из определенных групп на сервере 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");
}