问题描述
我在尝试重置某些用户的密码时遇到上述错误。
此错误不会发生在所有用户身上,而只会发生在部分用户身上。
代码片段
PrincipalContext principalContext = null;
try {
principalContext = new PrincipalContext(ContextType.Domain,DomainName,ServiceAC,ServicePWD);
} catch (Exception e) {
**code omitted**
}
UserPrincipal usr = null;
try{
usr = UserPrincipal.FindByIdentity(principalContext,user.userName);
} catch(Exception e){
**code omitted**
}
//user is available in active directory change password
var newPassword = requestedPassword;
usr.SetPassword(newPassword); // **This line throws error**
usr.Enabled = true;
try {
usr.Save();
} catch (Exception e) {
**code omitted**
}
堆栈跟踪
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at System.DirectoryServices.DirectoryEntry.Invoke(String methodName,Object[] args)
at System.DirectoryServices.AccountManagement.SDSUtils.SetPassword(DirectoryEntry de,String
newPassword)
at System.DirectoryServices.AccountManagement.ADStoreCtx.SetPassword(AuthenticablePrincipal
p,String newPassword)
at System.DirectoryServices.AccountManagement.PasswordInfo.SetPassword(String newPassword)
at System.DirectoryServices.AccountManagement.AuthenticablePrincipal.SetPassword(String
newPassword)```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)