Ish*_*awa 1 c# active-directory
我尝试为Server 2012中的更新域用户密码编写C#代码。我根据此堆栈溢出答案使用以下代码
using (var context = new PrincipalContext(ContextType.Domain, "test.com"))
{
using (var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, userName))
{
user.SetPassword(newPassword);
//user.ChangePassword(oldPassword, newPassword);
user.Save();
}
}
Run Code Online (Sandbox Code Playgroud)
运行代码时获取以下异常
System.Reflection.TargetInvocationException:调用的目标引发了异常。--->
System.UnauthorizedAccessException:访问被拒绝。(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))
我也禁用了密码策略。有什么建议吗?
您的代码所运行的帐户没有权限。您有两种选择:
PrincipalContext
并传递具有设置密码权限的用户名和密码:var context = new PrincipalContext(ContextType.Domain, "test.com", "domain\username", "password");
Run Code Online (Sandbox Code Playgroud)