Проект, над которым я работаю, будет интегрирован с Active Directory клиентов для аутентификации пользователей. Я пытался написать некоторый код, который будет извлекать пароль пользователя, и я понимаю, что Active Directory будет предоставлять соответствующие свойства только через SSL-соединение через порт 636.
Следующий код подключается программно без использования SSL, но тогда я не вижу свойства пароля:
static void Main(string[] args)
{
DirectoryEntry entry = new DirectoryEntry(@"LDAP://<IP>/CN=LDAP Test,CN=Users,DC=customer,DC=com");
entry.AuthenticationType = AuthenticationTypes.None;
entry.Username = "CN=LDAP Test,CN=Users,DC=customer,DC=com";
entry.Password = "<password>";
if (entry != null)
{
foreach (Object propName in entry.Properties.PropertyNames)
{
Console.WriteLine((String)propName);
}
}
}
Когда я изменяю код для использования SSL, я получаю исключение, сообщающее: Неизвестная ошибка (0x80005000) '.
Я включил SSL на сервере, на котором размещен Active Directory, установил Microsoft CA на этом же сервере и получил сертификат от CA.
Я могу подключиться к Active Directory через SSL с помощью Apache Directory Studio, но это не показывает свойства пароля.
Следующий код показывает, что я пытался использовать для подключения с использованием SSL:
static void Main(string[] args)
{
DirectoryEntry entry = new DirectoryEntry(@"LDAPS://<IP>:636/CN=LDAP Test,CN=Users,DC=customer,DC=com");
entry.AuthenticationType = AuthenticationTypes.SecureSocketsLayer;
entry.Username = "CN=LDAP Test,CN=Users,DC=customer,DC=com";
entry.Password = "<password>";
if (entry != null)
{
foreach (Object propName in entry.Properties.PropertyNames)
{
Console.WriteLine((String)propName);
}
}
}
Я не уверен, куда идти с этим, и некоторая помощь будет принята с благодарностью.