2012-07-18 10 views
0

我正在使用LDAP查詢可用域的列表。我的邏輯工作正常,當我在一臺機器上運行一個nic卡可用,並且它成功查詢域列表時,但是當我在有多個nic卡的機器上運行這個時,例如一個用於域A和另一個用於域B,我收到異常的原因很簡單,即DirectoryEntry()綁定失敗。查詢可用域列表,環境中有兩個不同域的多個NIC卡

我只需要爲此使用LDAP提供程序。

下面是代碼片斷:

using (DirectoryEntry RootDSE = new DirectoryEntry("LDAP://rootDSE")) 
    { 
     // Retrieve the Configuration Naming Context from RootDSE 
     string configNC = RootDSE.Properties["configurationNamingContext"].Value.ToString(); 

     // Connect to the Configuration Naming Context 
     using (DirectoryEntry configSearchRoot = new DirectoryEntry("LDAP://" + configNC)) 
     { 
      // Search for all partitions where the NetBIOSName is set. 
      using (DirectorySearcher configSearch = new DirectorySearcher(configSearchRoot)) 
      { 
       configSearch.Filter = ("(NETBIOSName=*)"); 

       // Configure search to return dnsroot and ncname attributes 
       configSearch.PropertiesToLoad.Add("dnsroot"); 
       configSearch.PropertiesToLoad.Add("ncname"); 
       using (SearchResultCollection forestPartitionList = configSearch.FindAll()) 
       { 

回答

0

當使用LDAP無需服務器或域結合字符串,如LDAP://rootDSE,缺省域將是計算機加入到域。如果計算機未加入域,則綁定將失敗(您還需要提供用戶名和密碼)。運行該應用程序的用戶或網站/服務的線程或用戶(如果在綁定期間指定了用戶)必須能夠讀取目標域,否則綁定將失敗。

如果這些都不能解決您的問題,那麼您需要提供有關這兩個域的更多信息。例如,他們是否在同一個森林裏?

相關問題