gpt4 book ai didi

active-directory - Active Directory 跨域搜索

转载 作者:行者123 更新时间:2023-12-03 01:33:54 28 4
gpt4 key购买 nike

我有一个包含两个域 AA.RR.COM 和 BB.RR.COM 的 Active Directory 林,其中包含用户和组。我需要搜索两个域中的用户,同时查询其中一个域(例如 AA.RT.COM)如何告诉 AD 对林中的所有邻居域运行 LDAP 查询?

这是我的代码:

using (var searcher = new DirectorySearcher(new DirectoryEntry(adServerName, adLogin, adPassword)))
{
var filter = string.Format("(&(objectClass=person)(|(givenName=*{0}*)(displayName=*{0}*)(sn=*{0}*)(mail=*{0}*)))", valueToSearch);

searcher.ReferralChasing = ReferralChasingOption.All;

searcher.PropertiesToLoad.AddRange(new[] {
"samaccountName",
"memberOf",
"displayname",
"mail" });

searcher.Sort = new SortOption("samaccountname", SortDirection.Ascending);
}

当所有用户都位于同一域中时,此方法可以正常工作,但当他们分布在同一林中的多个域中时,则效果不佳。

任何帮助都是值得赞赏的。

最佳答案

由于您说 AA.RR.COM 和 BB.RR.COM 位于同一 Active Directory 林中,因此您可以检查全局编录是否正在您的林中运行。如果您正在运行全局编录,则可以针对全局编录运行 LDAP 查询。以下示例代码假设 AA.RR.COM 中有一个全局目录。

using (DirectorySearcher searcher = new DirectorySearcher(new DirectoryEntry("GC://AA.RR.COM")))
{
var filter = string.Format("(&(objectClass=person)(|(givenName=*{0}*)(displayName=*{0}*)(sn=*{0}*)(mail=*{0}*)))", valueToSearch);

searcher.ReferralChasing = ReferralChasingOption.All;

searcher.PropertiesToLoad.AddRange(new[] { "samaccountName", "memberOf", "displayname", "mail" });
searcher.Sort = new SortOption("samaccountname", SortDirection.Ascending);
foreach (SearchResult result in searcher.FindAll())
{
Console.WriteLine(result.Path);
}
}

关于active-directory - Active Directory 跨域搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372240/

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