我创建了一个表单,要求您登录,然后针对ldap服务器/active-directory验证user/pass,如果成功,它将创建一个会话,将在每个页面上检查该会话。
现在我想要检查会话,这是登录人员的用户名,并使用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';
}发布于 2010-03-24 17:48:19
引用自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';
}https://stackoverflow.com/questions/2456028
复制相似问题