AccountManagement创建用户返回'对象已存在'例外

时间:2014-03-21 15:59:29

标签: c# active-directory account-management

我正在尝试在ActiveDirectory中的特定OU中创建一个新的UserPrincipal,并返回一个带有“对象已存在”消息的异常。 (显然)用户不存在于该OU中,我正在测试它的存在。

我做错了什么?

以下是抛出异常的代码:

public UserPrincipal CreateUser(string username, string pass,
        string givenName, string surname) {
    PrincipalContext context = this.principalContext;
    UserPrincipal user = new UserPrincipal(context);
    user.SamAccountName = username;
    user.UserPrincipalName = username;
    user.GivenName = givenName;
    user.Surname = surname;
    user.SetPassword(pass);
    user.Save();
    return user;
}

编辑1:单元测试后,我发现代码没问题。我在lib(我运行测试)中使用此方法,该lib由另一个启用了Windows身份验证模式的应用程序调用。也许该应用程序正在将该身份验证发送给AD?

2 个答案:

答案 0 :(得分:3)

sAMAccountName在整个企业中必须是唯一的。你提到了特定的OU'在创建用户时。是否有可能在另一个OU中有另一个用户名/ sAMAccountName相同的用户?

答案 1 :(得分:2)

我遇到了同样的错误,但是从上面接受的答案中并没有太大帮助,因为在我的情况下,问题不是由于sAMAccountName,而是由于Name。尝试创建的帐户具有唯一的sAMAccountName,但是名称已经存在,导致此错误。

The object already exists.

看起来错误可能发生在多个Active Directory帐户属性上

  • sAMAccountName
  • 名称

推荐
与大多数情况一样,最好在创建新条目之前检查是否存在。

有用的链接:

我希望这对某人有帮助。

干杯