【发布时间】:2012-07-16 13:46:36
【问题描述】:
作为 ASP.NET 网站上一组管理工具的一部分,我正在使用目录服务更改用户的 Active Directory 密码。
我收到错误:
错误:无法更改密码(您有权限吗?)。
System.Reflection.TargetInvocationException:异常 已被调用的目标抛出。
---> System.UnauthorizedAccessException:访问被拒绝。
(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))
--- 内部异常堆栈跟踪结束 ---
在 System.DirectoryServices.DirectoryEntry.Invoke(字符串 方法名,对象 [] 参数)
在 System.DirectoryServices.AccountManagement.SDSUtils.SetPassword(DirectoryEntry de, 字符串 newPassword)
在 System.DirectoryServices.AccountManagement.ADStoreCtx.SetPassword(AuthenticablePrincipal p, 字符串 newPassword)
Web.config 读作:
<authentication mode="Windows" />
<identity impersonate="true" />
在 Visual Studio 调试环境中,设置密码例程成功完成,但在从其他计算机访问时却没有。我正在尝试使用模拟来允许此请求 - 该站点可以正确地告诉我我的域和用户名(使用 Context.User.Identity),并且可以查询 Active Directory 以获取两种环境中所有用户的列表。
我的 PrincipalContext 是:
new PrincipalContext(ContextType.Domain, "DOMAINNAME");
非常感谢任何帮助。
【问题讨论】:
-
<identity impersonate="true" />不是冒充IIS Authenticated User吗?
标签: asp.net active-directory impersonation directoryservices