そこで、AD LDS でユーザー アカウントを作成するコードを書いています。ユーザーを作成できますが、アカウントが無効になっています。
ユーザーがアクティブになり、パスワードを変更できるようにしたい。この投稿で提案されていることをいくつか試しましたが、役に立ちませんでした。
これが私のコードです:
ctx = getConnection(adminUser, adminPassword);
// Create attributes for the new user
Attributes attributes = new BasicAttributes(true);
// Main attributes for user
attributes.put("objectClass", "user");
attributes.put("name", user.getFullName());
attributes.put("ms-DS-User-Account-Control-Computed",
Integer.toString(UF_NORMAL_ACCOUNT + UF_PASSWORD_EXPIRED));
try {
ctx.createSubcontext(getDistinguishedName(user.getFullName()),
attributes);
System.out.println("User successfully added!");
} catch (NamingException e) {
e.printStackTrace();
}
これを実行すると、次のエラーが表示されます。
javax.naming.directory.NoSuchAttributeException: [LDAP: エラー コード 16 - 00000057: LdapErr: DSID-0C090D11, コメント: 属性変換操作でエラーが発生しました, データ 0, v23f0remaining name 'CN=Samuel King,CN=Users,CN=Agents, DC=CHESA,DC=local' com.sun.jndi.ldap.LdapCtx.mapErrorCode (不明なソース) com.sun.jndi.ldap.LdapCtx.processReturnCode (不明なソース) com.sun.jndi.ldap.LdapCtx .processReturnCode (不明なソース) com.sun.jndi.ldap.LdapCtx.c_createSubcontext (不明なソース) com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext (不明なソース) com.sun.jndi.toolkit.ctx .PartialCompositeDirContext.createSubcontext(不明なソース) com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(不明なソース) at javax.naming.directory.InitialDirContext.com.ceiwc.ActiveDirectory.createUserAccount(ActiveDirectory.java:114) の createSubcontext (不明なソース) com.ceiwc.TestAD.main(TestAD.java:24) の
ms-DS-User-Account-Control-Computed を更新している行を次のように変更すると:
attributes.put("ms-DS-User-Account-Control-Computed", UF_NORMAL_ACCOUNT
+ UF_PASSWORD_EXPIRED);
次のエラーが表示されます。
javax.naming.directory.InvalidAttributeValueException: 'ms-DS-User-Account-Control-Computed' 属性値の形式が正しくありません。残りの名前 'CN=Samuel King,CN=Users,CN=Agents,DC=CHESA,DC=local' at com.sun.jndi.ldap.LdapClient.encodeAttribute (Unknown Source) at com.sun.jndi.ldap.LdapClient .add (不明なソース) com.sun.jndi.ldap.LdapCtx.c_createSubcontext (不明なソース) com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext (不明なソース) com.sun.jndi.toolkit.ctx com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(不明なソース) の .PartialCompositeDirContext.createSubcontext(不明なソース) javax.naming.directory.InitialDirContext.createSubcontext(不明なソース) com.ceiwc.ActiveDirectory.createUserAccount(ActiveDirectory) .java:116) com.ceiwc で。
それで、私は何を間違っていますか?これはアカウントを有効にする適切な方法ですか? 誰かが私を助けるコードを持っていますか?
ありがとう!