Active Directory 组在创建后不能立即使用

Active Directory groups not immediately available after creation

我正在我的应用程序中创建 Active Directory 组。我制作安全和分发组。这些组将被创建得很好,但大约需要 10-15 分钟才能显示在 Active Directory 用户和计算机中。

我可以在 C# 中执行某种强制同步来更快地实现这一点吗?或者我可以在我的目录中更改一些设置来更改此行为?

示例代码

        DirectoryEntry ou1= topLevel.Children.Find("OU=ou1");
        DirectoryEntry secGroups = ou1.Children.Find("OU=Security Groups");
        DirectoryEntry newGroup = secGroups.Children.Add("CN=" + name + "", "group");

        newGroup.CommitChanges();

        GroupPrincipal createdGroup = GroupPrincipal.FindByIdentity(this._context, name);
        createdGroup.SamAccountName = name;
        createdGroup.DisplayName = name;            
        createdGroup.GroupScope = GroupScope.Universal;

        createdGroup.Save();

        if (members.Any())
        {
            foreach (var item in members)
            {
                createdGroup.Members.Add(this._context, IdentityType.SamAccountName, item);
            }
            createdGroup.Save();
        }  

使用 ASP.NET MVC、C#、System.DirectoryServices.AccountManagement、System.DirectoryServices.ActiveDirectory。

最有可能的答案是传播到您网络上的所有域控制器需要时间。您可能会通过 ADUC 连接到与您的应用程序更新的不同的 DC。

在这种情况下,如果您有多个域控制器进行复制,可能会有所帮助的是为您对 AD 服务器进行的每次调用定位一个特定的 DC。

所以 "LDAP://mydomain.com" 变成了 "LDAP://myDC.mydomain.com"