Я использую Linq для LDAP, и мне было интересно, есть ли способ аутентифицироваться в AD с помощью Linq to LDAP,

Может быть, что-то в этом роде

var user = context.Query<User>().FirstOrDefault(u => u.SAMAccountName == "user123" && u.Password == "1234");
1
Null Reference 15 Янв 2013 в 09:27
1
Действительно, может быть. Ты пробовал это? Какие были результаты?
 – 
Adam Maras
15 Янв 2013 в 09:31
Я не могу этого сделать, потому что в AD нет атрибута Password, или, по крайней мере, я не думаю, что он будет отображаться таким образом.
 – 
Null Reference
15 Янв 2013 в 10:08
Я использовал программу просмотра AD, и в ней нет атрибута пароля, в отличие от sAMAccountName.
 – 
Null Reference
15 Янв 2013 в 10:09

1 ответ

Лучший ответ

Пароли не могут быть возвращены поиском в AD. Вам разрешено изменять их только через SSL. Вы можете попытаться отправить запрос Bind с помощью LdapConnection, но для этого не требуется LINQ to LDAP, только SYstem.DirectoryServices.Protocols.

var connection = new LdapConnection("localhost");

try
{
    connection.Bind(new NetworkCredential("username", "password", "domain"));
}
catch (LdapException ex)
{

}

Есть ли причина, по которой вы не можете использовать NTLM или Kerberos?

1
Alan 18 Янв 2013 в 09:09