如何使用C#在LDAP中进行身份验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用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资源管理器工具都可以进行身份​​验证,但代码却没有。为什么?

答案

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

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;
            }
}

以上是关于如何使用C#在LDAP中进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何深入LDAP树中找到可以在spring ldap security中进行身份验证的用户

使用apache LDAP在java中进行LDAP身份验证

如何使用 xml 配置文件、JAVA、Spring 安全性对 LDAP 用户进行身份验证

我们如何使用 spring security Ldap 以 angularjs 作为客户端进行身份验证

Apache shiro:使用 ldap 进行用户身份验证,使用数据库获得角色/权限?

使用 python + ldap 对活动目录进行身份验证