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 关注
- 148 浏览
添加回答
举报
