2016-09-26 60 views
3

我想使用PHP獲取我的活動目錄聯繫人,這是域:``OU = Shop,OU = US,OU = test,DC = com,DC = def,DC = intra' 。我需要搜索'FRA''英國',... &我只需要在'商店'OU中的聯繫人,我試過這樣的事情,但它的搜索過濾器是錯誤的:OU=Shop,OU=*,OU=test,DC=com,DC=def,DC=intra活動目錄過濾器PHP

所以我怎樣才能做出一個類似的搜索過濾器,只返回每個國家的商店?

回答

1

像@ mvrejin說的那樣,你不能以這種方式創建搜索過濾器,我會建議將你正在討論的聯繫人或商店添加到某個組中(例如Shops_),並在搜索過濾器中添加該組, :

$search_filter = '(&(objectCategory=person)(memberOf=cn=Shops_,ou=something,DC=com,DC=def,DC=intra))'; 
1

簡而言之,您無法使用DN創建搜索過濾器 - 這只是搜索「根」,即搜索向下開始的位置。

可以這樣認爲它是SQL語句:搜索不同的DN上下文就像在不同的表中搜索聯繫人,每個國家一個。在這種情況下,使用SQL您必須指定每個表:select * from US,MX,ES,...

在LDAP中,您將必須找到聯繫人對象共享的屬性。東西沿線

(&(objectclass=contact)(description=shop)) 

或者也許在你的情況下只需objectclass=contact就足夠了。

如果在屬性中沒有將您的聯繫人作爲一個組唯一標識的相似性,那麼您運氣不好。