1

我正在尝试使用 .net System.DirectoryServices.Protocolsnamespace api通过 ssl 连接到活动目录

这是我为连接到活动目录而编写的片段

LdapConnection ldapConnection = new LdapConnection(new LdapDirectoryIdentifier("<ipaddress>:<port>"));
ldapConnection.AuthType = AuthType.Basic;

LdapSessionOptions options = ldapConnection.SessionOptions;
options.SecureSocketLayer = true;
options.ProtocolVersion = 3;

X509Certificate cert = new X509Certificate();
cert.Import(@"E:\client.crt");

ldapConnection.ClientCertificates.Add(cert);
ldapConnection.Credential = new NetworkCredential("administrator", "xxxxxxxxxx");

ldapConnection.Bind();
Console.WriteLine("successfully connected");

当我尝试执行此代码段时,我总是收到 LDAP 服务器不可用错误。我已经为它编写了一个等效的 JAVA,它能够连接到服务器,所以我认为证书或活动目录连接没有问题。我还可以使用相同的 IP 地址和端口 389 连接到没有 ssl 的 Active Directory。

谢谢

4

1 回答 1

0
LdapConnection ldapConnection = new LdapConnection(server + ":" + port);
ldapConnection.AuthType = AuthType.Basic;
ldapConnection.Credential = new System.Net.NetworkCredential(username,
                                                                  password);
ldapConnection.SessionOptions.ProtocolVersion = 3;
if (sslEnabled)
{
    ldapConnection.SessionOptions.SecureSocketLayer = sslEnabled;
}

这就是我所做的,我能够通过 SSL 连接到 AD。您说您有 Java 程序通过 SSL 连接到同一台服务器。您是否在与 c# 相同的机器上运行 Java 程序?如果不是,并且如果 AD 中有自签名证书,请在您的客户端计算机中安装该证书并尝试。

于 2016-02-12T07:40:50.943 回答