0

在过去的四天里,我一直在尝试从 asp.net 连接到我们的 OpenLDAP 服务器,但没有成功。就在我脱掉头发之前,任何人都可以有一个可行的解决方案(即使用 c# asp.net 连接到 OpenLDAP 服务器)。显然我可以从 putty.exe 访问 ldap 服务器并进行搜索。此外,我可以使用 LDAP 服务器通过本地安装的 Drupal CMS 进行身份验证,而不会出现任何问题——因为我已经添加了 LDAP 模块。我的问题是在 asp.net 中做同样的事情。具体详情如下:

Ldap 服务器托管在 sun solaries 上。我的开发机器正在运行 Win XP Service Pack 3。当我尝试使用已成功使用 putty 的用户名和密码调用 bind 时出现错误。

    string hostNameAndSSLPort = "ipaddress";
    string userName = "username";
    string password = "password";

    // establish a connection
    LdapConnection connection = new LdapConnection(hostNameAndSSLPort);

    // create an LdapSessionOptions object to configure session
    // settings on the connection.
    LdapSessionOptions options = connection.SessionOptions;

    options.ProtocolVersion = 3;


    options.SecureSocketLayer = true;

    connection.AuthType = AuthType.Basic;

    connection.Credential =
    new NetworkCredential(userName , password );

    try
    {
        connection.Bind();
    }
    catch(Exception e){
         lblSecurity.Text = e.Message;
    }

我什至尝试使用 options.StartTransportLayerSecurity(null); 启动 TLS;在通过相同的错误调用绑定之前仍然存在。我可能做错了什么?请帮忙!!!!!!!!

4

3 回答 3

2

我遇到过同样的问题。我的修复与上面的答案非常相似。问题是 LDAP 服务器发回了一个证书,而客户端(我们的代码)不接受它。因此,通过添加以下代码行,让我庆祝并撕破衬衫!

connection.SessionOptions.VerifyServerCertificate = new VerifyServerCertificateCallback((con, cer) => true);

或者用vb术语:

connection.SessionOptions.VerifyServerCertificate = New VerifyServerCertificateCallback(Function(con, cer) True)
于 2017-06-20T20:41:35.830 回答
0

像这样的代码:

LdapConnection connection = new LdapConnection(new LdapDirectoryIdentifier(this._domain,     Convert.ToInt32(this._port)));
connection.SessionOptions.VerifyServerCertificate = new VerifyServerCertificateCallback((con, cer) => true);
connection.SessionOptions.ProtocolVersion = 3;
connection.AuthType = AuthType.Basic;       
connection.SessionOptions.SecureSocketLayer = true;
于 2012-10-22T06:00:49.760 回答
0

请参阅此答案以获取一些有效的示例代码。 如何连接到本地安装的 OpenLDAP 服务?

你提到使用XP。我相信有一个热修复程序可以解决 XP 上 winldap 的 TLS 实现中的问题。您必须在 microsoft 网站上进行一些搜索。我记得它被埋在某处的technet页面中。

也不要将 TLS 与 .net/winldap 一起使用。您会想知道为什么您的网站会随机锁定 cpu 直到它被杀死。上面的答案有解释。只需使用 SSL。

于 2012-07-16T18:39:34.627 回答