2016-10-08 22 views
0

我嘗試寫,當我嘗試下一個用戶執行這個過程,它取得的可用DirectoryEntry如何從DirectoryEntry對象

// create LDAP connection object 

DirectoryEntry myLdapConnection = createDirectoryEntry(); 

// create search object which operates on LDAP connection object 
// and set search object to only find the user specified 

DirectorySearcher search = new DirectorySearcher(myLdapConnection); 
search.Filter = "(cn=" + username + ")"; 

// create results objects from search object 

SearchResult result = search.FindOne(); 

if (result != null) 
{ 
    // user exists, cycle through LDAP fields (cn, telephonenumber etc.) 

    ResultPropertyCollection fields = result.Properties; 

    foreach (String ldapField in fields.PropertyNames) 
    { 
     // cycle through objects in each field e.g. group membership 
     // (for many fields there will only be one object such as name) 

     foreach (Object myCollection in fields[ldapField]) 
      Console.WriteLine(String.Format("{0,-20} : {1}", 
        ldapField, myCollection.ToString())); 
    } 
} 

else 
{ 
     // user does not exist 
     Console.WriteLine("User not found!"); 
} 

所有屬性的程序獲得所有屬性,它返回我屬性列表,但當我嘗試在不同的用戶下執行此過程時,它會返回不同數量的屬性。

我需要什麼樣的授權,以獲得所有屬性?提前

感謝

了Kobi

回答

0

默認情況下,所有成功登錄AD帳戶(驗證用戶)具有讀取訪問Active Directory(請參閱https://blog.varonis.com/the-difference-between-everyone-and-authenticated-users/)。但是在某些情況下,行爲可能會被管理員更改。要檢查用戶可以訪問哪些AD對象屬性,請在任何DC上打開ADUC管理單元,打開所需的AD對象屬性,然後轉到安全選項卡。在那裏你可以看到所有用戶\組的通用安全信息。如果您單擊選項卡上的高級按鈕,然後轉到有效訪問選項卡,您可以驗證所需安全主體對該對象具有的有效訪問權限。

最簡單的方法是使用屬於Domain Admins \ Enterprise Admins組的帳戶連接到DC。不過,我建議避免這種情況,因爲安全原因並正確配置權限