创建后,Active Directory组无法立即使用

时间:2015-08-27 23:45:44

标签: c# asp.net-mvc active-directory directoryservices

我正在我的应用中创建Active Directory组。我建立了安全和分发组。这些组将很好地创建,但在Active Directory用户和计算机中显示大约需要10-15分钟。

我是否可以在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。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

所以不是“LDAP://mydomain.com”而是“LDAP://myDC.mydomain.com”