2017-07-17 80 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

非常感謝您的回答 –