这似乎是几年前在Constraint violation when trying to set "User Cannot Change Password" in active directory from c#上提出的
但实际上没有任何回答可以充分回答这个问题。

我尝试恢复线程,是因为我想特别从始发者那里得知他是否已经解决了该问题,但是我的回答被删除了,因为它是一个老问题了。我希望Resorath能够看到这一点,因为他可能对该问题有更多的了解!

基本上,问题归结为缺少权限。

更具体地说,我创建了一个服务帐户并委派了完全修改权限(选中了“AD用户和计算机”的“高级”安全设置DACL列表的“后代用户对象”列表中的所有框...包括随后出现的框手动编辑一些文件)。是的,其中包括ntSecurityDescriptor。此外,这还包括“后代帐户对象”的“修改权限”。

当我使用该用户创建PrincipalContext并使用该上下文创建或加载UserPrincipal时,我能够从字面上修改与该用户有关的所有内容,但UserCannotChangePassword属性除外。尝试保存用户时,出现A constraint violation has occured错误。

请注意:将服务帐户添加到DomainAdmins组时,我可以进行此更改。另外,如果我将帐户设置为用户对象的所有者,那么我也可以进行此更改。对我来说,这清楚地表明我缺少许可。

我已经搜寻了几个小时,以寻找可能对我有帮助的信息,并且在这一点上我已经用尽了Google-fu的能力。

这是我在corefx github页面中打开的问题的链接... https://github.com/dotnet/corefx/issues/34193
这包括一个演示该问题的示例应用程序。

谢谢!

最佳答案

它引起了我的注意,我从未在这里发布过给出的解决方案。这是corefx库中的一个错误,在我提到的问题https://github.com/dotnet/corefx/issues/34193中,有一个我们尚未解决的实现和制作PR的修复程序。如果有人需要它,那么也可以自己修复。希望其他人看到它时,它会被解决:-)

09-16 07:42