【发布时间】:2014-05-26 16:48:11
【问题描述】:
我被 UserPrincipal 类操作 AD-LDS 用户对象所困扰。虽然我可以查询用户、更改属性并将它们保存回 AD LDS,但只要我尝试设置(或更改)密码,我总是会收到带有附加信息的 PrincipalOperationException“目录属性不能在缓存中找到。”
如果我通过 ADSI-Edit 更改用户密码,一切正常。因此我认为这不是模式问题。我使用简单绑定而不使用 SSL 进行绑定(它是一个开发机器)。我已经通过 dsmgmt 允许了不安全的密码设置选项。我用来连接的用户是用户所在目录配置单元的管理员角色。 代码如下所示(简化):
using (var ctx = GetPrincipalContext()) {
UserPrincipal u = UserPrincipal.FindByIdentity(ctx, IdentityType.Name, identityValue);
u.SetPassword("12345$äöAAA1234_");
u.Save();
}
在 GetPrincipalContext() 中创建上下文的位置如下:
new PrincipalContext(ContextType.ApplicationDirectory, "localhost", "[DC=...]", ContextOptions.SimpleBind,"[username of adminuser]","[Password of admin user]");
当我尝试创建一个新的 UserPrincipal 然后保存它时,也会出现同样的问题。我想,这也是因为附加的密码。
【问题讨论】:
标签: .net ldap adam account-management userprincipal