【发布时间】:2012-07-18 16:30:22
【问题描述】:
我正在使用 DirectorySearcher 在 LDAP 服务器中搜索用户条目。
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://myserver/OU=People,O=mycompany";
de.AuthenticationType = AuthenticationTypes.None;
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
deSearch.Filter = "(uid=" + model.UserName + ")";
SearchResult result = deSearch.FindOne();
我能够在结果变量中获得预期的输出。
但是,如果我尝试通过在目录条目中提供密码来验证同一用户,我总是会收到以下错误。
“用户名或密码不正确。”
DirectoryEntry entry = new DirectoryEntry("LDAP://myserver/OU=People,O=mycompany", username, password);
DirectorySearcher search = new DirectorySearcher(
entry,
"(uid=" + username + ")",
new string[] { "uid" }
);
search.SearchScope = System.DirectoryServices.SearchScope.Subtree;
SearchResult found = search.FindOne(); ->>>>>this is where I get wrong credential error.
用户名和密码用于我要验证的用户。
谁能告诉我我在这里做错了什么或如何调试它。
【问题讨论】:
-
您的 LDAP 服务器在查询之前是否需要身份验证?
-
不,搜索不需要身份验证。我也可以以匿名用户身份搜索。我有一个基于 Web 的工具,我需要在其中实现 LDAP 身份验证,以便只有真正的用户才能访问它。
标签: c# authentication ldap