DirectoryEntry.Invoke ChangePassword上的Active Directory访问被拒绝异常

时间:2014-06-13 23:15:17

标签: c# active-directory

遵循MVC web api代码可以正常运行

directoryEntry.Invoke("SetPassword", "desired password");
directoryEntry.CommitChanges();

但尝试

时,同一个应用程序/服务帐户会出错
directoryEntry.Invoke("ChangePassword", "old password", "new password");
directoryEntry.CommitChanges();

错误详情: System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

调用ChangePassword是否需要与SetPassword不同的权限?

2 个答案:

答案 0 :(得分:3)

由于“用户无法更改密码”设置标志被检查,您可能会收到访问被拒绝错误。您要为其更改密码的任何用户都需要取消选中该设置。

答案 1 :(得分:1)

检查IIS7中的应用程序池标识用户,设置具有更改AD密码的管理员权限的用户

你可以在iis 7>>下找到它应用程序池然后选择您的应用程序使用的应用程序池,然后右键单击它并选择高级设置,然后在此下面找到Process Model,您将在此处找到Identity属性设置具有管理员权限的正确用户