在我们的环境中有两个 AD 域:DomainA 和 DomainB。从 DomainB 到 DomainA 有一种单向信任方式。
我们使用以下代码从域中的服务器中列出域 A 中 AD 组的所有用户(我们使用域 A 中的用户作为主体上下文):
using(PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "DomainA", "DomainA\\user", "pwd");
{
using (GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, "DomainA\\DomainGroup"))
{
var members = grp.GetMembers(true);
foreach (Principal p in members)
{
string email = string.Empty;
UserPrincipal u = p as UserPrincipal;
if (u != null)
{
email = u.EmailAddress;
}
if (!String.IsNullOrEmpty(email) && !users.Contains(email))
{
users.Add(email);
}
}
}
}
此代码在 IIS Web 服务中执行。
在 DomainB 中重新启动服务器后,代码运行良好,但经过几次尝试后,代码变得非常慢。AD集团约有700名成员。重新启动后代码大约需要5-10秒,一段时间后代码大约需要2-3分钟!
谁能帮我解决这个问题?
相关分类