2017-07-17 134 views
0

我的示例代码unboundid LDAP SDK如何让所有用户和排除部门

Filter searchFilter = Filter.create("(sAMAccountType=805306368)"); 
         SearchRequest searchRequest = 
           new SearchRequest(advanceBaseDnTxt.getText(), SearchScope.SUB, searchFilter, 
             ldapAttributeSet); 
         SearchResult searchResult = lcon.search(searchRequest); 

难道这还不够程序来检索所有用户以及如何排除部门也?

+1

'“(&(sAMAccountType = 805306368)((省= <编号,以! EXCLUDE>)))“'? – Esteban

+0

@Esteban谢谢。 (sAMAccountType = 805306368)和(objectCategory = user)之间又有什么区别? –

+1

与'SELECT * FROM table WHERE accountType =“foo”'和'SELECT * FROM table WHERE rowType =“bar”'相同。它过滤2个不同的属性。从属性名称我假设您使用ActiveDirectory,并且这些属性是特定的AD,这不是LDAP相关的。 (如果objectCategory指objectClass,则它是一个LDAP属性,用于指定条目的类型及其定义:例如,哪些属性可用) – Esteban

回答

1

要否定一个LDAP过滤器的属性,看看这个页面:http://www.ldapexplorer.com/en/manual/109010000-ldap-filter-syntax.htm

(!(department=<NUMBER TO EXCLUDE>))应采用

如果您需要在多个属性进行筛选,从你的例子,你需要具有sAMAccountType=805306368每一个条目并且不以department=<NUMBER TO EXCLUDE>,所以所述过滤器将是:

(&(sAMAccountType=805306368)(!(department=<NUMBER TO EXCLUDE>)))

+0

非常感谢您的回答 –