gpt4 book ai didi

c# - 跨多个 Active Directory 域搜索用户

转载 作者:可可西里 更新时间:2023-11-01 08:50:04 24 4
gpt4 key购买 nike

我正在使用 System.DirectoryServices.AccountManagement 来提供用户查找功能。

该企业有多个区域特定的 AD 域:AMR、EUR、JPN 等。

以下适用于 EUR 域,但不会返回来自其他域的用户(自然):

var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=eur,DC=mycorp,DC=com");

var query = new UserPrincipal(GetContext());

query.Name = "*Bloggs*";

var users = new PrincipalSearcher(query).FindAll().ToList();

但是,如果我以整个目录为目标,它不会返回来自任何区域特定域的用户:

var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=mycorp,DC=com");

如何搜索整个目录?

更新

阅读“Active Directory 搜索的工作原理”:

http://technet.microsoft.com/en-us/library/cc755809(v=ws.10).aspx

如果我在服务器名称后加上端口 3268,它会搜索全局目录:

var context = new PrincipalContext(ContextType.Domain, "mycorp.com:3268", "DC=mycorp,DC=com");

但是它非常非常慢。关于如何提高性能有什么建议吗?

最佳答案

具有初始通配符 (*Bloggs*) 的查询将很慢,除非您在查询的属性上有元组索引。默认情况下,AD 中的所有属性都没有此设置。最好不要使用初始通配符。

关于c# - 跨多个 Active Directory 域搜索用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13967871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com