【发布时间】:2012-05-05 06:27:41
【问题描述】:
我拥有三个或更多域,例如 main.com、sub.main.com、sub2.main.com 等
我有一个代码:
using (PrincipalContext ctx =
new PrincipalContext(ContextType.Domain, "ADServer",
"dc=main,dc=com", ContextOptions.Negotiate))
{
UserPrincipal u = new UserPrincipal(ctx);
u.UserPrincipalName = "*" + mask + "*";
using (PrincipalSearcher ps = new PrincipalSearcher(u))
{
PrincipalSearchResult<Principal> results = ps.FindAll();
List<ADUser> lst = new List<ADUser>();
foreach (var item in results.Cast<UserPrincipal>().Take(15))
{
byte[] sid = new byte[item.Sid.BinaryLength];
item.Sid.GetBinaryForm(sid, 0);
ADUser us = new ADUser()
{
Sid = sid,
Account = item.SamAccountName,
FullName = item.DisplayName
};
lst.Add(us);
}
}
return lst;
}
但它只在一个域内搜索:main.com。
如何一次搜索所有域中的记录?
【问题讨论】:
-
我认为您不能一次在多个域中进行搜索。您需要“序列化”您的搜索。
-
你的意思是我必须知道域并用循环搜索它们吗?
标签: c# active-directory ldap