PHP LDAP代码检查特定组的成员时出现问题
我在以下代码中遇到问题,应该检查$user是否在AlumniDBusers或AlumniDBmanagers组中 条目[0]数组始终返回空白 有人能看出哪里出了问题吗 谢谢PHP LDAP代码检查特定组的成员时出现问题,php,active-directory,ldap,Php,Active Directory,Ldap,我在以下代码中遇到问题,应该检查$user是否在AlumniDBusers或AlumniDBmanagers组中 条目[0]数组始终返回空白 有人能看出哪里出了问题吗 谢谢 // Active Directory server define('LDAP_HOST','dc1.college.school.edu'); // Active Directory DN define('LDAP_DN','OU=Alumni Relations,OU=Departments,DC=college,DC
// Active Directory server
define('LDAP_HOST','dc1.college.school.edu');
// Active Directory DN
define('LDAP_DN','OU=Alumni Relations,OU=Departments,DC=college,DC=school,DC=edu');
// Active Directory user group
define('LDAP_USER_GROUP','AlumniDBusers');
// Active Directory manager group
define('LDAP_MANAGER_GROUP','AlumniDBmanagers');
$ldap = ldap_connect(LDAP_HOST);
echo "LDAP CONNECTED<br />";
if($bind = ldap_bind($ldap, $user, $password)) {
echo "PASS BIND<br />";
$filter = "(samAccountName=" . $user . ")";
$attrs = array("memberOf");
$result = ldap_search($ldap, LDAP_DN, $filter, $attrs);
$entries = ldap_get_entries($ldap, $result);
echo "ENTRY RESULTS: ";
print_r($entries[0]['memberOf']);
echo "<br />";
// see if member is in user or manager group
if (in_array(LDAP_USER_GROUP,$entries[0]['memberOf']) || in_array(LDAP_MANAGER_GROUP,$entries[0]['memberOf']))
{
echo "IN GROUP";
ldap_unbind($ldap);
} else {
echo "NOT IN GROUP";
ldap_unbind($ldap);
}
} else {
echo "FAIL BIND";
ldap_unbind($ldap);
}
//Active Directory服务器
定义('LDAP_HOST','dc1.college.school.edu');
//Active Directory DN
定义('LDAP_DN','OU=校友关系,OU=系,DC=学院,DC=学校,DC=edu');
//Active Directory用户组
定义('LDAP_用户_组','AlumniDBusers');
//Active Directory管理器组
定义('LDAP_MANAGER_GROUP','AlumniDBmanagers');
$ldap=ldap\u连接(ldap\u主机);
回显“LDAP已连接
”;
如果($bind=ldap_bind($ldap,$user,$password)){
回显“通过绑定
”;
$filter=“(samAccountName=“.$user.””);
$attrs=数组(“memberOf”);
$result=ldap\u search($ldap,ldap\u DN,$filter,$attrs);
$entries=ldap\u get\u条目($ldap,$result);
echo“输入结果:”;
打印($entries[0]['memberOf']);
回声“
”;
//查看成员是否在用户组或经理组中
if(在_数组中(LDAP _用户_组,$entries[0]['memberOf'])|在_数组中(LDAP _管理器_组,$entries[0]['memberOf']))
{
呼应“分组”;
ldap_unbind($ldap);
}否则{
回声“不在组中”;
ldap_unbind($ldap);
}
}否则{
回应“失败绑定”;
ldap_unbind($ldap);
}
PHP手册
“在为用户添加/编辑属性时,请记住'memberof'属性是一种特殊情况。memberof属性不是用户架构的可访问属性。”让它工作起来,我的DN是错误的
代码正确发布函数ldap_get_entries($ldap,$result);这可能就是问题所在:isldap_get_entries()是phpy的标准函数。您的代码刚刚帮我解决了一个问题,谢谢!谢谢分享代码!工作得很有魅力!如何在组中添加用户?我不是试图添加或编辑用户的属性,只是询问他是哪些组的成员。从谷歌搜索中我可以看出,这是可能的——我一直在尝试获取工作代码。上面的代码来自以下在线文章,但一定是出了问题