gpt4 book ai didi

c# - 在 C# 中创建 AD 用户

转载 作者:行者123 更新时间:2023-11-30 17:04:28 25 4
gpt4 key购买 nike

我正在尝试使用此代码创建一个新的 AD 用户:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "Domain", "ou=some_ou, dc=Mydomain");
UserPrincipal user = new UserPrincipal(ctx, account, passwd, true);
user.GivenName = Givenname;
user.Surname = Surname;
user.DisplayName = Displayname;
user.UserPrincipalName = account + "@Domain";
user.Save();

用户创建没有错误。但我还必须设置 Address 等属性,因此代码继续:

string distname = user.DistinguishedName;
DirectoryEntry duser = new DirectoryEntry(distname);
try
{
duser.Properties["company"].Value = "Company";
}
catch (Exception e)
{
}

现在我得到了

Error: System.Exception._COMPlusExceptionCode -532459699

字符串 distname 显示正确的识别名。

最佳答案

我不是 100% 确定是什么导致了您的问题,但有一件事可能会让您的事情变得更容易,并且可能会清除由于您不正确地使用 DirectoryServicesDirectoryServices 而导致的一些错误。 AccountManagement 同时为creating a new class that includes the company attribute .

其实做起来并不难。

[DirectoryObjectClass("user")]
[DirectoryRdnPrefix("CN")]
public class UserPrincipalEx : UserPrincipal
{
public UserPrincipalEx(PrincipalContext context) : base(context) { }

public UserPrincipalEx(PrincipalContext context, string samAccountName, string password, bool enabled)
: base(context, samAccountName, password, enabled)
{
}

[DirectoryProperty("company")]
public string Company
{
get
{
if (ExtensionGet("company").Length != 1)
return null;

return (string)ExtensionGet("company")[0];

}
set { this.ExtensionSet("company", value); }
}
}

然后您只需修改您的代码即可

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "Domain", "ou=some_ou, dc=Mydomain");
UserPrincipalEx user = new UserPrincipalEx(ctx, account, passwd, true);
user.GivenName = Givenname;
user.Surname = Surname;
user.DisplayName = Displayname;
user.UserPrincipalName = account + "@Domain";
user.Company = "Company";
user.Save();

我的直觉是,您正在与两种连接事件目录的方法进行某种交互,如果您切换到单一界面,您的问题可能就会消失。

关于c# - 在 C# 中创建 AD 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com