我尝试使用具有客户端登录的LDAP服务器,该服务器显然必须是一个简单的绑定(具有专有名称)。
var clientEntry = new DirectoryEntry(
"LDAP://server.de",
"cn=medialibrary, ou=special users, dc=uni, dc=de",
"password",
AuthenticationTypes.None);
DirectorySearcher directorySearch = new DirectorySearcher(clientEntry, "(cn=searchuser");
SearchResult result = directorySearch.FindOne();
通过DN的连接工作正常。但是,搜索cn = searchuser不会返回任何用户(并且没有错误)。
我们要搜索的用户位于路径中:
OU =人,DC = UNI,DC = DE
在LDAP-Admin实用程序中,我们可以使用cn = medialibrary等DN登录,然后我们将搜索库修改为 " OU =人,DC =单波茨坦,DC = DE" 然后进行搜索我们找到cn = searchuser条目
问题是在C#代码中修改我们可以在该实用程序中执行的搜索库的等效性是什么?
(目标用户与我最初必须绑定的目录条目给出的默认分支位于不同的分支中。)
我相信这个原始的目录网址已经尝试过但没有用(权限?)
LDAP://server.de/ou=people,dc=uni,dc=de
答案 0 :(得分:0)
string LDAPpAth = "dc=uni,dc=de"
string filter = "(cn=searchuser)"
string username = "medialibrary"
string password = "password"
DirectoryEntry startingPoint = new DirectoryEntry("LDAP://"+LDAPpAth, username, password);
DirectorySearcher searcher = new DirectorySearcher(startingPoint);
searcher.Filter = filter;
从那里你可以做searcher.findone并使用你需要的值。如果有效,请告诉我。