2010-03-16 78 views
1

我創建了一個表單,要求您登錄,然後驗證用戶/通過ldap服務器/活動目錄,如果成功,它會創建一個會話,這將在每一頁上檢查。ldap登錄表單工作,但需要添加活動目錄組訪問

現在我想檢查會話,這是登錄人員的用戶名,並使用ldap_search搜索它們,以便我可以檢查它們屬於哪個組,並通過函數將該組傳遞給確認他們可以查看該頁面。

每個頁面都可以被某個或某些用戶組訪問,這些用戶組是在Active Directory中定義的。

我不確定如何使用ldap_search來做到這一點,或者這可能只是我嘗試解決的難題之一。

任何幫助表示讚賞 - 謝謝!

在下面的示例代碼中,它看到用戶是否屬於學生活動目錄組(我不知道這個代碼是否有效,但它應該讓你知道我想完成什麼)。

$filter = "CN=StudentCN=Users,dc=domain,dc=control"; 

$result = ldap_search($ldapconn,$filter,$valid_session_username); 

if($result == TRUE) { 
print $valid_session_username.' does have access to this page'; 
} else { 
print $valid_session_username.' does NOT have access to this page'; 
} 

回答

3

php.net ldap_search() manual

返回一個搜索結果上錯誤 標識符或FALSE引用。

你必須使用ldap_count_entries()來檢查LDAP搜索竟然發現條目:

$filter = "CN=StudentCN=Users,dc=domain,dc=control"; 
$result = ldap_search($ldapconn,$filter,$valid_session_username); 

$found = false; 
if ($result !== false) { 
    $count = ldap_count_entries ($ldapconn, $result); 
    if ($count !== false && $count > 0) { 
    $found = true; 
    } 
} 

if ($found === true) { 
    print $valid_session_username.' does have access to this page'; 
} else { 
    print $valid_session_username.' does NOT have access to this page'; 
}