如何使用C#

时间:2018-03-01 03:24:20

标签: c# ldap

我非常惊讶,因为我有5年前建立LDAP连接,但突然有一个我无法连接到ldap。 LDAP数据是:

LDAP: LDAP://172.16.0.181:390/dc=asmet,dc=local
Username: cn=zentyalro,dc=asmet,dc=local
Password: EBsmOpCoIytamGe=Yret

接下来是我用于身份验证的代码:

bool authentic = false;
try
{
    DirectoryEntry entry = new DirectoryEntry("LDAP://172.16.0.181:390/dc=asmet,dc=local",
        @"cn=zentyalro,dc=asmet,dc=local", "EBsmOpCoIytamGe=Yret");
    object nativeObject = entry.NativeObject;
    authentic = true;
}
catch (DirectoryServicesCOMException ex)
{
}

错误是:

  

指定的DN语法无效。

我真的不知道为什么会发生这种情况。更奇怪的是,使用任何LDAP资源管理器工具都可以进行身份​​验证,但代码却没有。为什么呢?

1 个答案:

答案 0 :(得分:0)

我认为这是因为你的语法。请尝试以下代码:

bool authentic = false;

using (var context = new PrincipalContext(ContextType.Domain, "172.16.0.181:390", username  , password))
        {

            if (context.ValidateCredentials(username, password) == true)
            {
                authentic = true;
            }
}