1

我写了一个工具,允许用户更改他们的AD密码。此工具不会对我的公司域名的问题,但与Citrix客户机上运行时,我收到以下错误信息:尝试从c改变密码时拒绝访问#

System.Reflection.TargetInvocationException:异常已通过调用的目标引发异常。 ---> System.UnauthorizedAccessException:访问被拒绝。 (来自HRESULT的异常:0x80070005(E_ACCESSDENIED)) ---内部异常堆栈跟踪--- 在System.DirectoryServices.DirectoryEntry.Invoke(String methodName,Object [] args)末尾 at System.DirectoryServices.AccountManagement.SDSUtils .ChangePassword(德的DirectoryEntry,字符串旧密码,字符串NEWPASSWORD) 在System.DirectoryServices.AccountManagement.ADStoreCtx.ChangePassword(AuthenticablePrincipal p,字符串旧密码,字符串NEWPASSWORD) 在CitrixPWChangeBackend.ActiveDirectory.ChangePasswordForCurrentUser(字符串oldPw,字符串newPw,布尔& errorWrongPw ,布尔型& errorPasswordRules,字符串& errorMessage)

导致该错误的行是:

UserPrincipal.Current.ChangePassword(oldPw, newPw); 

“oldPW”是正确的,当然

+0

您可以使用同一用户成功运行该工具,但是已登录到您客户机器的控制台吗?这样做可以很好地排除Citrix,因为访问被拒绝的异常并不是我希望Citrix环境引入的。 – donovan

+0

同时我发现,用户的属性UserCannotChangePassword设置为true。撕掉管理员头后,我等待另一个帐户正确测试我的代码。 –

+0

谢谢,donovan。原因在于配置方面的预期。 –

回答

3

的“神奇”的原因是该用户造成财产“UserCannotChangePassword”是真实的政策。 没有思杰特定的问题。

相关问题