为了账号安全,请及时绑定邮箱和手机立即绑定

c#GroupPrincipal.GetMembers 性能问题

c#GroupPrincipal.GetMembers 性能问题

C#
潇潇雨雨 2021-07-22 15:19:37
在我们的环境中有两个 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分钟!谁能帮我解决这个问题?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信