gpt4 book ai didi

c# - 在 C# 中创建带密码的 Active Directory 用户

转载 作者:IT王子 更新时间:2023-10-29 04:29:44 27 4
gpt4 key购买 nike

我正在寻找一种方法来创建 Active Directory 用户并设置他们的密码,最好不要给我的应用程序/服务域管理员权限。

我试过以下方法:

DirectoryEntry newUser = _directoryEntry.Children.Add("CN=" + fullname, USER);
newUser.Properties["samAccountName"].Value = username;
newUser.Properties["userPassword"].Value = password;
newUser.Properties["mail"].Value = email;
newUser.CommitChanges();

用户已创建,但似乎从未为用户设置密码。

有没有人知道在创建用户时如何初始设置用户密码?我知道

.Invoke("SetPassword", new object[] { password })

但这需要我的代码以域管理员权限运行。因为我真的不明白授予我的代码域管理员权限的意义,只是为了设置初始密码(我也允许用户密码重置,但那些在该特定用户的上下文中运行),我希望有人有一个聪明的不需要我这样做的解决方案。

提前致谢!

最佳答案

您现在可以使用 System.DirectoryServices.AccountManagement 更轻松地完成整个过程(只要您使用的是 .Net 3.5):

See here for a full rundown

这是您的具体案例的一个简单示例:

using(var pc = new PrincipalContext(ContextType.Domain))
{
using(var up = new UserPrincipal(pc))
{
up.SamAccountName = username;
up.EmailAddress = email;
up.SetPassword(password);
up.Enabled = true;
up.ExpirePasswordNow();
up.Save();
}
}

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

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