Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Active Directory组在创建后不立即可用_C#_Asp.net Mvc_Active Directory_Directoryservices - Fatal编程技术网

C# Active Directory组在创建后不立即可用

C# Active Directory组在创建后不立即可用,c#,asp.net-mvc,active-directory,directoryservices,C#,Asp.net Mvc,Active Directory,Directoryservices,我正在我的应用程序中创建Active Directory组。我创建安全组和分发组。这些组将很好地创建,但在Active Directory用户和计算机中显示大约需要10-15分钟 我是否可以在C#中执行某种强制同步,以便更快地实现这一点?或者我可以在我的目录中更改一些设置来更改这种行为 示例代码 DirectoryEntry ou1= topLevel.Children.Find("OU=ou1"); DirectoryEntry secGroups = ou1.

我正在我的应用程序中创建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.

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

在您有多个域控制器复制的情况下,可能有助于针对您对AD服务器的每次呼叫的特定DC


因此,它不再是“LDAP://mydomain.com”,而是类似于“LDAP://myDC.mydomain.com”

您是否有多个广告?不确定这是否能回答您的问题,但我们在这个active directory中有几个域。我不认为我们有超过1个active directory。(很抱歉,这对我来说还是个新鲜事)。您认为这可能是复制问题吗?通常,至少有2个域控制器(不是每个公司)。。。是的,我倾向于复制延迟…在搜索已创建组的10-15分钟内,您会遇到什么样的错误?我本身没有任何错误。代码执行正确(没有抛出异常),但我有另一个程序,每30分钟运行一次,基本上将AD组与数据库中的组列表同步。它会在广告中看到,而不会看到新的群体。最有可能的是,他们没有立即得到复制。为了证明这一点,在创建
PrincipalContext
DirectoryEntry
时,不要指定
yourdomain.com
,而是指定第一个域控制器的FQDN,然后查看它是否返回。然后试着换一个。如果实际上有人会返回组,那就是同步延迟。有没有办法在我的LDAP字符串或主体上下文中设置DC?您可以在两个连接中指定相同的DC,并检查这是否是问题的根源。非常好。将我的ldap字符串更改为包含DC,它立即起作用。非常感谢。