2014-06-27 9 views
1

我试图使用具有客户端登录的LDAP服务器,显然必须是一个简单的绑定(具有专有名称)。LDAP,DirectoryServices c#搜索查询基地

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 =单,DC = DE

在LDAP的管理工具,我们可以登录使用CN = medialibrary等DN如果我们再修改搜索基地 “OU =人,DC =单波茨坦,DC = DE” 然后我们找到CN = searchuser进入

搜索的问题是什么等同于修改搜索库,我们可以在C#代码中使用该实用程序?

(目标用户是不同的分支由我必须原来绑定到目录条目中给出的默认分支。)

我相信这种原始的目录URL已审结,没有工作(权限)

LDAP://server.de/ou=people,dc=uni,dc=de

回答

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和使用的价值为你所需要的。让我知道这是否有效。

+0

我已要求客户对此进行测试,但他们坚持需要DN。我将自己运行一批测试,并再次包括这一点,但暂时我们可以用DN作为用户名感谢 – user1444886