1 回答

TA貢獻1824條經驗 獲得超8個贊
你不能使用 來做到這一點PrincipalSearcher
,但你可以使用 來做到這一點DirectorySearcher
,無論如何這就是PrincipalSearcher
幕后的用途。這是一個簡單的例子:
var search = new DirectorySearcher(new DirectoryEntry("LDAP://my_do_main")) {
PageSize = 1000,
Filter = "(&(objectClass=user)(!userPrincipalName=my_prefix*))"
};
search.PropertiesToLoad.Add("userPrincipalName");
using (var results = search.FindAll()) {
foreach (SearchResult result in results) {
Console.WriteLine((string) result.Properties["userPrincipalName"][0]);
}
}
你會發現這無論如何都會執行得更快。根據我的經驗,直接使用DirectorySearcher
和DirectoryEntry
總是比使用PrincipalSearcher
(或AccountManagement
名稱空間中的任何東西)快得多。不久前我寫了一篇關于該主題的文章:Active Directory:更好的性能
- 1 回答
- 0 關注
- 115 瀏覽
添加回答
舉報