C#连接到Oracle身份管理LDAP服务器

时间:2015-08-03 17:24:13

标签: c# ldap ldapconnection

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

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

这是一个问题,因为我认为确实没有解决方案,但有没有人知道如何去做这个?我们运行的代码与Active Directory一样正常。所以只要Oracle支持以这种方式连接,我们的代码应该没问题。但是找到关于这个话题的任何事情就像拔牙一样。

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

提前致谢!

1 个答案:

答案 0 :(得分: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;
    }
}
相关问题