我正在尝试使用.net System.DirectoryServices.Protocols
命名空间api
以下是我为连接到活动目录而编写的代码段
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目录。
由于
答案 0 :(得分: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中使用自签名证书,请在客户端计算机中安装该证书并尝试。