Неверные учетные данные, подключающиеся к AD / LDS с помощью LdapConnection - PullRequest
0 голосов
/ 12 февраля 2019

На моей машине запущен экземпляр AD / LDS, и я пытаюсь подключиться к нему с помощью класса System.DirectoryServices.Protocols.LdapConnection.По какой-то причине каждый раз, когда я вызываю метод Bind (), он выдает исключение LdapException, сообщающее о неверных учетных данных.

Вот код, который я использую для настройки соединения:

var ldapDirectoryIdentifier = new LdapDirectoryIdentifier(config.Server.Host, config.Server.Port);

var creds = new NetworkCredential(config.Credentials.Username, config.Credentials.Password)
{
    Domain = config.Credentials.
};

ldapConnection = new LdapConnection(ldapDirectoryIdentifier, creds, AuthType.Basic);

if (config.Server.Secure)
{
    cert = new X509Certificate(config.Server.Certificate);
    ldapConnection.SessionOptions.SecureSocketLayer = true;
    ldapConnection.SessionOptions.VerifyServerCertificate = CheckCertificate;
}

ldapConnection.SessionOptions.ProtocolVersion = 3;

try
{
    ldapConnection.Bind();
}
catch (LdapException e)
{
    Log.LogException(e);
    Environment.Exit(e.ErrorCode);
}

Конфигурация поступает из файла App.config, как в следующем примере:

<server host="host" port="389"/>
<credentials username="username" password="password" domain="domain"/>
<usersearch base="ou=test,dc=test,dc=com" filter="(middlename=user)" objectclass="inetorgperson"/>
<devicesearch base="ou=test,dc=test,dc=com" filter="(sn=device)" objectclass="inetorgperson"/>

Я попытался изменить часть учетных данных, чтобы подключить ее;установка username="DOMAIN\user", с и без записи домена для учетных данных.Я пробовал возиться со строками подключения, например <server host="LDAP://host[:389]"/>.Он просто говорит, что учетные данные, которые я использую для подключения к экземпляру с помощью ADSI Edit и ldp, являются недействительными.

Я МОГУ соединиться с теми же учетными данными домена (локальной учетной записью пользователя), используя System.DirectoryServices.DirectoryEntry, поэтому я подозреваю, что бит AD / LDS является разборчивым.

У кого-нибудь есть идеи?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Я пошел дальше и дважды проверил, какие AuthTypes были доступны, и установил его на Ntlm.

0 голосов
/ 12 февраля 2019

Вероятно, это опция сеанса.Попробуйте принудительно установить тип аутентификации:

ldapConnection.AuthType = AuthType.Negotiate;

Это также может быть способ обработки сертификата.Попробуйте добавить это так:

ldapConnection.ClientCertificates.Add(cert);
...