c# - AccountManagement创建用户返回 'object already exists'异常

标签 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:经过单元测试,发现代码没问题。我在一个库(我运行测试的地方)中使用这个方法,它被另一个启用了 Windows 身份验证模式的应用程序调用。也许应用程序正在将该身份验证发送到 AD?

最佳答案

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

The object already exists.

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

  • sAMAccountName
  • 姓名

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

有用的链接:

我希望这对某人有帮助。

干杯,

关于c# - AccountManagement创建用户返回 'object already exists'异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22563589/

相关文章:

c# - 调试时无法加载文件或程序集错误,但程序集不在任何引用目录中

c# - Entity Framework Core DeleteBehavior 不采取操作

c# - Listview ItemSelectionChanged 触发两次?

azure - 如何以编程方式登录或获取 Azure AD 中已登录 Google 用户的 JWT token ?

java - LDAP 搜索过滤器不起作用

c# - 无法将类型 System.DirectoryServices.AccountManagement.Principal 隐式转换为字符串

c# - WPF Datagrid 在 header 排序时崩溃

c# - 使用 ValidateCredentials 重复失败的登录尝试是否会导致用户被锁定?

c# - 通过 employeeID 获取 UserPrincipal

verification - 账号验证: Only 1 account per person