我写了一个工具,允许用户更改他们的 AD 密码。此工具在我的公司域上运行没有问题,但是在使用 citrix 的客户机器上运行它时,我收到以下错误消息:
System.Reflection.TargetInvocationException:调用的目标已引发异常。---> System.UnauthorizedAccessException:访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))---内部异常堆栈跟踪结束---在 System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) 在 System.DirectoryServices.AccountManagement.SDSUtils.ChangePassword( DirectoryEntry de, String oldPassword, String newPassword) at System.DirectoryServices.AccountManagement.ADStoreCtx.ChangePassword(AuthenticablePrincipal p, String oldPassword, String newPassword) at CitrixPWChangeBackend.ActiveDirectory.ChangePasswordForCurrentUser(String oldPw, String newPw, Boolean& errorWrongPw, Boolean& errorPasswordRules, String& errorMessage )
导致该错误的行是:
UserPrincipal.Current.ChangePassword(oldPw, newPw);
“oldPW”当然是正确的