2011-12-29 30 views
0

我爲AD環境創建了一個基於Web的管理系統。我目前正在嘗試讀取基於objectguid的目錄條目。這可能嗎?使用PHP從基於ObjectGUID的LDAP中讀取

我能夠做這樣的事情:

$filter = "(&(objectclass=*)(objectguid=$objectguid))"; 
$search = ldap_read($ds, $dn, $filter); 

隨着$ DN是像CN =測試,OU =集團,DC =東方CJ,DC =域,DC = com的。所以我知道它接受了GUID,但是我想跳過$ dn部分,只用GUID進行閱讀。

有什麼建議嗎?我無法找到任何說ldap_read可以直接使用GUID讀取的內容。

回答

1

要只讀guid,給第三個參數來控制你想返回的屬性。第二個$ dn參數是強制性的,它指定了搜索範圍,並且如果您不太具體,可以將其始終設置爲root_dn。

如果您不想在結果集數組中使用dn條目,這是不可能的,因爲這是ldap_read函數的API,但您可以通過遍歷數組(map)將其過濾掉。

$search = ldap_read($ds, $root_dn, $filter, array('objectguid')); 
+0

如上所述,我已經獲得了GUID。我試圖單獨閱讀基於guid的條目,沒有完整的DN或僅提供極端的基本DN。因此,DC = OCJ,DC = Domain,DC = Com,並通過guid過濾(不給我任何東西),但獲得所有屬性。 – dustinnewbold 2011-12-29 21:14:04

+0

我明白了。我使用了ldap_search而不是ldap_read。謝謝您的幫助! – dustinnewbold 2011-12-29 21:40:14

0

您也可以通過GUID進行綁定。將您的$ dn設置爲<GUID={guid-goes-here}>

+0

??? - 這看起來沒有完成 – 2012-05-01 14:40:38

+0

固定 - 顯然這個網站沒有在尖括號中顯示這些東西,直到我逃脫它。 – 2012-05-02 17:12:56

相關問題