Java 在employeeID属性中查找具有特定值的用户
我试图通过搜索employeeID属性(每个员工都是唯一的)来查找用户名的CN。我已经让它返回一个包含所有属性的字符串,但我希望它只返回用户的CN(例如:“John Doe”或“CN=John Doe”;两者都可以)Java 在employeeID属性中查找具有特定值的用户,java,active-directory,ldap,Java,Active Directory,Ldap,我试图通过搜索employeeID属性(每个员工都是唯一的)来查找用户名的CN。我已经让它返回一个包含所有属性的字符串,但我希望它只返回用户的CN(例如:“John Doe”或“CN=John Doe”;两者都可以) 注意:我知道可以从字符串中剪切部分,但我希望它只返回我需要的值。搜索请求应该包含属性列表。某些API将返回匹配项中的所有属性。在要返回的属性列表中指定cn,并准备好处理多值cn属性 另见 搜索请求应包含属性列表。某些API将返回匹配项中的所有属性。在要返回的属性列表中指定c
注意:我知道可以从字符串中剪切部分,但我希望它只返回我需要的值。搜索请求应该包含属性列表。某些API将返回匹配项中的所有属性。在要返回的属性列表中指定
cn
,并准备好处理多值cn
属性
另见
cn
,并准备好处理多值cn
属性
另见
- 例如:
DirContext ctx = new InitialDirContext(env);
/***/
NamingEnumeration<?> namingEnum = ctx.search(
"dc=stackoverflow,dc=com, "employeeID=" +id,
ctls);
while (namingEnum.hasMoreElements()) {
SearchResult result = (SearchResult) namingEnum.next();
Attributes attrs = result.getAttributes();
System.out.println(attrs.get("cn"));
System.out.println(attrs.get("name"));
System.out.println(attrs.get("userPrincipalName"));
}
/***/
DirContext ctx=新的初始DirContext(env);
/***/
NamingEnumeration Namingeneum=ctx.search(
“dc=stackoverflow,dc=com,”employeeID=“+id,
CTL);
while(namingeum.hasMoreElements()){
SearchResult=(SearchResult)namingeum.next();
Attributes attrs=result.getAttributes();
System.out.println(attrs.get(“cn”);
System.out.println(attrs.get(“name”);
System.out.println(attrs.get(“userPrincipalName”);
}
/***/
结果是:
CN:Andres Montejo
姓名:Andres Montejo
userPrincipalName:andresmontejo@stackoverflow.com例如:
DirContext ctx = new InitialDirContext(env);
/***/
NamingEnumeration<?> namingEnum = ctx.search(
"dc=stackoverflow,dc=com, "employeeID=" +id,
ctls);
while (namingEnum.hasMoreElements()) {
SearchResult result = (SearchResult) namingEnum.next();
Attributes attrs = result.getAttributes();
System.out.println(attrs.get("cn"));
System.out.println(attrs.get("name"));
System.out.println(attrs.get("userPrincipalName"));
}
/***/
DirContext ctx=新的初始DirContext(env);
/***/
NamingEnumeration Namingeneum=ctx.search(
“dc=stackoverflow,dc=com,”employeeID=“+id,
CTL);
while(namingeum.hasMoreElements()){
SearchResult=(SearchResult)namingeum.next();
Attributes attrs=result.getAttributes();
System.out.println(attrs.get(“cn”);
System.out.println(attrs.get(“name”);
System.out.println(attrs.get(“userPrincipalName”);
}
/***/
结果是:
CN:Andres Montejo
姓名:Andres Montejo
userPrincipalName:andresmontejo@stackoverflow.com