AD委派用户密码更改是一种允许非域管理员用户更改Active Directory用户密码的方法。下面是一个使用C#代码示例的解决方法:
using System;
using System.DirectoryServices.AccountManagement;
public class AdPasswordChanger
{
public void ChangePassword(string username, string oldPassword, string newPassword)
{
try
{
// 创建一个PrincipalContext对象连接到Active Directory
using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
// 查找要更改密码的用户对象
UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, username);
if (user != null)
{
// 验证用户的当前密码是否正确
bool isPasswordValid = context.ValidateCredentials(username, oldPassword);
if (isPasswordValid)
{
// 更改用户密码
user.SetPassword(newPassword);
user.Save();
Console.WriteLine("密码已成功更改。");
}
else
{
Console.WriteLine("当前密码不正确。");
}
}
else
{
Console.WriteLine("找不到指定用户。");
}
}
}
catch (Exception ex)
{
Console.WriteLine("发生错误:" + ex.Message);
}
}
}
public class Program
{
static void Main(string[] args)
{
AdPasswordChanger passwordChanger = new AdPasswordChanger();
// 调用ChangePassword方法更改密码
passwordChanger.ChangePassword("username", "oldpassword", "newpassword");
}
}
请注意,此示例假定你已经具有与Active Directory的连接权限,并且具有更改密码的权限。