如何使用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中进行身份验证的用户
如何使用 xml 配置文件、JAVA、Spring 安全性对 LDAP 用户进行身份验证
我们如何使用 spring security Ldap 以 angularjs 作为客户端进行身份验证