1

我写了一个工具,允许用户更改他们的 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”当然是正确的

4

1 回答 1

3

“神奇”原因是该用户的策略导致属性“UserCannotChangePassword”为真。没有 Citrix 特定问题。

于 2013-04-15T08:45:45.050 回答