2014-06-27 104 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