TCP-порт по умолчанию для LDAP - 389. Это то, что используется, если вы не укажете иначе. Чтобы использовать LDAPS, необходимо указать порт LDAPS 636. Например:
using(var pc = new PrincipalContext(ContextType.Domain, "example.com:636"))
Где example.com
- это имя вашего домена.
Однако для использования LDAPS требуется, чтобы ваш компьютер доверял сертификат SSL, который использует сервер. Иногда используется самоподписанный сертификат, и это может привести к сбою. PrincipalContext
не сообщает об ошибках сертификата. Он сообщает, что с сервером невозможно связаться. Поэтому, если у вас возникла проблема, вы можете использовать этот сценарий PowerShell, чтобы загрузить сертификат и проверить его:
$webRequest = [Net.WebRequest]::Create("https://example.com:636")
try { $webRequest.GetResponse() } catch {}
$cert = $webRequest.ServicePoint.Certificate
$bytes = $cert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Cert)
set-content -value $bytes -encoding byte -path "certificate.cer"
Измените первую строку, указав свое доменное имя. Если это сработает, будет файл с именем certificate.cer
, который можно дважды щелкнуть и проверить. Если ваш компьютер не доверяет ему, вы увидите сообщение об этом. Если это проблема, вам, вероятно, просто нужно установить сертификат root как «Надежный Root сертификат» на ваш компьютер.