我正在尝试在 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/