從Active Directory 擷取使用者資訊
要從Active Directory 收集使用者清單及其對應的使用者名稱、姓名和姓氏,考慮以下方法:
了解Active Directory結構
Active Directory 依層次結構組織數據,容器和物件由可分辨名稱標識。在執行查詢之前了解此結構至關重要。
LDAP 查詢和 PrimarySearcher
Active Directory 是 LDAP 伺服器,LDAP 查詢可用於擷取資訊。對於使用者特定的查詢,建議使用 System.DirectoryServices.AccountManagement 中的 PrimarySearcher 類別。
擷取範例程式碼
以下程式碼範例示範如何擷取使用者資訊使用PrincipalSearcher :
using (var context = new PrincipalContext(ContextType.Domain, "yourdomain.com")) { using (var searcher = new PrincipalSearcher(new UserPrincipal(context))) { foreach (var result in searcher.FindAll()) { DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry; Console.WriteLine("First Name: " + de.Properties["givenName"].Value); Console.WriteLine("Last Name : " + de.Properties["sn"].Value); Console.WriteLine("SAM account name : " + de.Properties["samAccountName"].Value); Console.WriteLine("User principal name: " + de.Properties["userPrincipalName"].Value); Console.WriteLine(); } } }
屬性注意事項
請注意,「givenName」對應名字,而「sn」代表姓氏。至於使用者名稱,Active Directory 儲存兩個登入名稱:「samAccountName」(Windows 2000 之前的版本)和「userPrincipalName」(Windows 2000 之後的版本)。
以上是如何從 Active Directory 檢索使用者資訊(名稱和使用者名稱)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!