1

我们正在与另一家拥有 Oracle 身份管理服务器设置的公司合作。我们将连接到此并根据从服务器重试的 LDAP 数据对用户进行身份验证。

我们试图通过使用传递服务器名称和端口的 LdapConnection 对象以及它们提供给我们的网络凭据来插入此功能,因此我们使用的是 Basic 的 AuthType。但是在 Bind() 上我们总是失败,因为它说我们有无效的凭据。我们与客户合作以确保它们是正确的,并且我们已经能够使用凭据登录到 Oracle 身份管理,尽管我们必须使用来自 SearchRequests 专有名称的数据的用户名。但即使使用它,我们也会继续收到相同的错误。客户端还使用凭据通过 Java 进行连接。

这是一个问题,因为我认为真的没有解决方案,但是那里有人知道如何去做吗?我们正在运行相同的代码,这些代码正在运行并从 Active Directory 中提取。因此,只要 Oracle 支持以这种方式连接,我们的代码就应该没问题。但是找到任何关于这个话题的东西就像拔牙一样。

有人有这方面的经验吗?请让我知道,如果需要,我很乐意提供任何其他详细信息。

提前致谢!

4

1 回答 1

2

我最近摸索着使用 LDAP 连接到 OID。这是最终为我工作的代码:

// make sure the server and port are correct
using (var ldap = new LdapConnection("ldap.company.com:3060"))
{
    // make sure to pass the username as a distinguishedName
    var dn = string.Format("cn={0},cn=users,dc=company,dc=com", username);

    // passing null for the domain worked for me
    var credentials = new System.Net.NetworkCredential(dn, password, null);
    ldap.AuthType = AuthType.Basic;

    try
    {
        ldap.Bind(credentials);
        return true;
    }
    catch (LdapException ex)
    {
        return false;
    }
}
于 2015-08-03T18:13:51.353 回答