2011-08-05 60 views
2

我想從我的控制檯應用程序訪問XXX域中的目錄。從C訪問活動目錄#

   DirectoryEntry oDE = new DirectoryEntry("LDAP://DC=XXXX,DC=myDomain,DC=com"); 

      using (DirectorySearcher ds = new DirectorySearcher(oDE)) 
      { 
       ds.PropertiesToLoad.Add("name"); 
       ds.PropertiesToLoad.Add("userPrincipalName"); 

       ds.Filter = "(&(objectClass=user))"; 

       SearchResultCollection results = ds.FindAll(); 

       foreach (SearchResult result in results) 
       { 
        Console.WriteLine("{0} - {1}", 
         result.Properties["name"][0].ToString(), 
         result.Properties["userPrincipalName"][0].ToString()); 
       } 
      } 

當行SearchResultCollection results = ds.FindAll();執行我收到錯誤「服務器上沒有這樣的對象」。

我做錯了什麼?

+0

我是否需要提供任何身份驗證來訪問目錄條目? – Roshe

+0

您是否確定要更改LDAP Uri中的其他3個部分?如果你的域名是DomainXXX.lan;它需要是DC = DomainXXX,DC = lan – NKCSS

+0

External Domain = XXXX.com MyDomain = test.com DirectoryEntry oDE = new DirectoryEntry(「LDAP://DC=XXX.com,DC=test,DC=com 「); 我認爲這是方式。 – Roshe

回答

0

好了,沒有達到我們的「聊天」中的註釋簡歷:因爲你沒有正確格式化LDAP URI

您當前的問題引起的。

LDAP URI累積= 「LDAP:// DC =」

其次是你的服務器的URI(例如Test1.Test2.gov.lk),您更換 ''用 'DC ='

所以,Test1.Test2.gov.lk變成 'LDAP:// DC =測試1,DC =的Test2,DC = GOV,DC = LK'

我不禁你跟進你的後續問題;我建議爲此創建一個新問題。

好運,

尼克。