C# Active Directory组在创建后不立即可用
我正在我的应用程序中创建Active Directory组。我创建安全组和分发组。这些组将很好地创建,但在Active Directory用户和计算机中显示大约需要10-15分钟 我是否可以在C#中执行某种强制同步,以便更快地实现这一点?或者我可以在我的目录中更改一些设置来更改这种行为 示例代码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.
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,它立即起作用。非常感谢。