【问题标题】:LDAP / AD: Creating group A and adding it to group B failsLDAP / AD:创建组 A 并将其添加到组 B 失败
【发布时间】:2012-10-04 07:58:41
【问题描述】:

我正在尝试创建 groupA,并将其添加到 groupB。这失败了,说 groupA 找不到(尽管我可以验证它确实是创建的)。在组的创建和可以通过搜索找到它的点之间似乎存在延迟。这是我的代码:

//1) create groupA
using (var group = ou.Children.Add("CN=" + AdConnection.EscapeLdapString(groupAName), "group"))
{
    group.Properties["samAccountName"].Value = groupAName;
    group.CommitChanges();
}

//2) add groupA to groupB
using (var pc = new PrincipalContext(ContextType.Domain, domain.Name, domain.Username, domain.Password))
{
    using (var groupB = GroupPrincipal.FindByIdentity(pc, IdentityType.Guid, Guid))
    {
        groupB.Members.Add(pc, IdentityType.SamAccountName, groupAName); //throws a NoMatchingPrincipalException 
        groupB.Save();
    }
}

如果我把它写成两个程序,然后执行第 1 部分,稍等片刻,然后再执行第 2 部分,这样就可以了。我可能会重复运行第 2 部分,直到找到 A 组,但我想避免这种情况。有没有确定的方法来做到这一点?例如,我可以在创建 groupA 时指定 groupA 是 groupB 的成员吗?

【问题讨论】:

    标签: c# active-directory ldap directoryservices active-directory-group


    【解决方案1】:

    通过使用new GroupPrincipal(pc, groupName) 创建 groupA、保存它,然后使用相同的 PrincipalContext 查找 groupB 来解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      • 2020-12-04
      相关资源
      最近更新 更多