当前位置:编程学习 > JAVA >>

Java怎么查询AD(ldap)目录下的信息


    精确到uid cn 能查询,也就是说能根据用户名字什么的查询一个人的信息

   现在需要精确到ou目录,假如我的dn是dc=demo,dc=com  
   然后下面有一个ou=测试的

   ou下面有很多用户,

   我怎么查询 ou=测试的,dc=demo,dc=com 下面的所有人员信息

  求高手指点。

    

   LDAP Java --------------------编程问答-------------------- 把查询的代码贴出来

  
public void Ldapbyuserinfo(String userName) {

// Create the search controls

SearchControls searchCtls = new SearchControls();

// Specify the search scope

searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);

// specify the LDAP search filter

String searchFilter = "sAMAccountName=" + userName;

// Specify the Base for the search 搜索域节点

String searchBase = "DC=example,DC=COM";

int totalResults = 0;

String returnedAtts[] = { "url", "whenChanged", "employeeID", "name",

"userPrincipalName", "physicalDeliveryOfficeName",

"departmentNumber", "telephoneNumber", "homePhone", "mobile",

"department", "sAMAccountName", "whenChanged", "mail" }; // 定制返回属性



searchCtls.setReturningAttributes(returnedAtts); // 设置返回属性集



// searchCtls.setReturningAttributes(null); // 不定制属性,将返回所有的属性集



try {

NamingEnumeration answer = dc.search(searchBase, searchFilter,

searchCtls);

if (answer == null || answer.equals(null)) {

System.out.println("answer is null");

} else {

System.out.println("answer not null");

}

while (answer.hasMoreElements()) {

SearchResult sr = (SearchResult) answer.next();

System.out

.println("************************************************");

System.out.println("getname=" + sr.getName());

Attributes Attrs = sr.getAttributes();

if (Attrs != null) {

try {



for (NamingEnumeration ne = Attrs.getAll(); ne

.hasMore();) {

Attribute Attr = (Attribute) ne.next();

System.out.println("AttributeID="

+ Attr.getID().toString());

// 读取属性值

for (NamingEnumeration e = Attr.getAll(); e

.hasMore(); totalResults++) {

String user = e.next().toString(); // 接受循环遍历读取的userPrincipalName用户属性

System.out.println(user);

}

// System.out.println(" ---------------");

// // 读取属性值

// Enumeration values = Attr.getAll();

// if (values != null) { // 迭代

// while (values.hasMoreElements()) {

// System.out.println(" 2AttributeValues="

// + values.nextElement());

// }

// }

// System.out.println(" ---------------");

}

} catch (NamingException e) {

System.err.println("Throw Exception : " + e);

}

}

}

System.out.println("Number: " + totalResults);

} catch (Exception e) {

e.printStackTrace();

System.err.println("Throw Exception : " + e);

}

}



 更多的可以去看  http://bbs.it-home.org/thread-1819-1-1.html
 现在想知道的是怎么精确到一个ou目录 查询下面的所有人员,求救 --------------------编程问答-------------------- 你问题解决了吗。我也用到类似的问题。求分享。
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,