C# 连接到 Oracle 身份管理 LDAP 服务器
C# Connection to Oracle Identity Management LDAP Server
我们正在与另一家拥有 Oracle 身份管理服务器设置的公司合作。我们将连接到此并根据从服务器重试的 LDAP 数据对用户进行身份验证。
我们已尝试通过使用 LdapConnection 对象将服务器名称和端口以及它们提供给我们的网络凭据传递进来,因此我们使用的是 Basic 的 AuthType。但是在 Bind() 上我们总是失败,因为它说我们有无效的凭据。我们已与客户合作以确保它们是正确的,并且我们已经能够使用凭据登录到 Oracle 身份管理,尽管我们必须使用来自 SearchRequests 专有名称的用户名。但即使使用它,我们也会继续收到同样的错误。客户端还使用凭据通过 Java 进行连接。
我认为这是一个没有真正解决方案的问题,但是有人知道如何解决这个问题吗?我们有相同的代码 运行,它正在运行并从 Active Directory 中提取。因此,只要 Oracle 支持以这种方式连接,我们的代码就应该没问题。但是找到与此主题相关的任何内容就像拔牙一样。
有人对此有经验吗?请让我知道,如果需要,我很乐意提供任何其他详细信息。
提前致谢!
我最近摸索着使用 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;
}
}
我们正在与另一家拥有 Oracle 身份管理服务器设置的公司合作。我们将连接到此并根据从服务器重试的 LDAP 数据对用户进行身份验证。
我们已尝试通过使用 LdapConnection 对象将服务器名称和端口以及它们提供给我们的网络凭据传递进来,因此我们使用的是 Basic 的 AuthType。但是在 Bind() 上我们总是失败,因为它说我们有无效的凭据。我们已与客户合作以确保它们是正确的,并且我们已经能够使用凭据登录到 Oracle 身份管理,尽管我们必须使用来自 SearchRequests 专有名称的用户名。但即使使用它,我们也会继续收到同样的错误。客户端还使用凭据通过 Java 进行连接。
我认为这是一个没有真正解决方案的问题,但是有人知道如何解决这个问题吗?我们有相同的代码 运行,它正在运行并从 Active Directory 中提取。因此,只要 Oracle 支持以这种方式连接,我们的代码就应该没问题。但是找到与此主题相关的任何内容就像拔牙一样。
有人对此有经验吗?请让我知道,如果需要,我很乐意提供任何其他详细信息。
提前致谢!
我最近摸索着使用 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;
}
}