【问题标题】:C#.NET, Adding AD user to AD group - The object already existsC#.NET,将 AD 用户添加到 AD 组 - 对象已存在
【发布时间】:2014-09-23 20:53:10
【问题描述】:

我的任务是创建一个解决方案,以在 AD 组中添加和删除 AD 用户。以下代码是有效的,除非我尝试保存组。我收到“对象已存在”的异常。我已将问题(我认为)缩小到 SamAccountName,我认为这就是导致异常的原因。

除了我被授予修改指定为添加/删除用户的组的权限外,我无权修改 AD 中的任何内容。我进行了无休止的研究,只是无法确定解决方案。任何帮助将不胜感激。提前致谢。

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "address", "DN", "username", "password");
GroupPrincipal grp = new GroupPrincipal(ctx, sGroup);
UserPrincipal usr = UserPrincipal.FindByIdentity(ctx, sUser);
if (grp != null)
{                  
    grp.Members.Add(usr);
    grp.Save();
}

【问题讨论】:

    标签: c# .net active-directory directoryservices principalcontext


    【解决方案1】:

    在我看来,您正在创建一个与现有组同名的新组。而不是

    GroupPrincipal grp = new GroupPrincipal(ctx, sGroup);
    

    你可以试试

    GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, sGroup);
    

    获取现有组然后对其进行修改?

    【讨论】:

    • 我修改了代码以匹配如上所示,我得到了异常“多个主体包含一个匹配的身份。”
    • 您可能需要更准确地提供 sGroup:GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, sGroup);。或者提供一个专有名称。基本上,您有两个对象,AD 认为与您传递的任何对象相匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多