【问题标题】:Active Directory access denied exception on DirectoryEntry.Invoke ChangePasswordDirectoryEntry.Invoke ChangePassword 上的 Active Directory 访问被拒绝异常
【发布时间】:2014-06-13 23:15:17
【问题描述】:

以下 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 不同的权限吗?

【问题讨论】:

  • 该用户的“更改密码”标志是否可能未选中?
  • @Cory 你能告诉我如何验证吗?
  • @Cory 抱歉,我太懒了。在用户属性中找到该标志,并对其进行了检查(用户无法更改密码)。取消选中它,错误就消失了。如果您将其添加为答案,我会将其标记为答案。顺便说一句,新错误是“指定的网络密码不正确。(HRESULT 异常:0x80070056)”即使我输入了正确的当前密码。
  • 没关系最后评论的新错误部分...序列化错误。
  • 这是个好消息。我将我的评论问题转换为答案。

标签: c# active-directory


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在 IIS7 中检查您的应用程序池身份用户设置具有管理员权限的用户以更改 AD 密码

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 2016-10-30
      • 1970-01-01
      • 2022-06-14
      • 2011-12-25
      • 2012-05-19
      • 2014-11-19
      相关资源
      最近更新 更多