gpt4 book ai didi

php - ldap_搜索() : Search: Operations error again

转载 作者:行者123 更新时间:2023-12-03 09:07:06 25 4
gpt4 key购买 nike

大家好,

我知道我的问题一定有似曾相识的一面,但我没有通过 stackoverflow 或其他方式找到任何解决方案。所以我一直在尝试创建一个允许连接到 ldap 的函数,然后检查我的用户的 id 和 pwd,然后检查他属于哪个组。当我在一个“部分”中完成这个功能时,它起作用了。但我想在三个不同的函数中执行此操作,这样我就可以一一处理它。现在我有了连接 ldap 的函数:

   function ldapConnection() {
$ldapConnection = ldap_connect(LDAP_SERVER);
ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapConnection, LDAP_OPT_REFERRALS, 0);
return $ldapConnection;
}

它返回一个标识符 LDAP 链接,因此连接正常。

然后我有检查登录和密码的功能:

  public function checkLoginPwd($login, $pwd) {
$ldapConnexion = $this->ldapConnection();
if ($bind = ldap_bind($ldapConnexion, $login, $pwd)) {
return true;
//ldap_close($ldapConnexion);
} else {
return false;
}
}

然后是我遇到问题的函数。

    public function checkUserRights($login, $pwd, $ldapConnection) {   
//Récupération login
$loginAccount = "(sAMAccountName=$login)";
//Suppression de "myGroup\"
$filter = str_replace("myGroup\\", "", $loginAccount);
$attr = array("memberof");
//Recherche
$result = ldap_search($ldapConnection, LDAP_BASE_DN, $filter, $attr);
$entries = ldap_get_entries(ldap_connect(LDAP_SERVER), $result);

foreach ($entries[0]['memberof'] as $grps) {
if (strpos($grps, "VPN")) {
$access = 2;
break;
}

if (strpos($grps, "Users"))
$access = 0;
}

if ($access != 0) {
$_SESSION['user'] = $login;
$_SESSION['access'] = $access;
return true;
} else {
return false;
}

如果我尝试以这种方式连接,则会出现以下消息错误:ldap_search():搜索:操作错误即使我一次性完成它确实有效。

如果有人能帮助我,那就太好了......

编辑:

所以你知道,如果我对 $filter 进行 var 转储,我会得到: string'(sAMAccountName=myLogin)'。对于 $ldapConnection 来说是资源(13, ldap link),对于 LDAP_BASE_DN 来说是字符串 'DC=myGroup, DC=fr',$attr 是数组 (size=1) 0 => 字符串“memberof”(长度=8)。

最佳答案

经过几个小时的搜索,我找到了解决方案,并将其发布在这里,以防它对某人有用:我刚刚将这两行添加到我的 checkUsersRights 函数中:

  $ldapConn = ldap_connect(LDAP_SERVER);
ldap_bind($ldapConn, $login, $pwd);

确实,在我在调用函数时创建新连接之前,但我需要在函数中创建它并使用 ldap_bind 来正确连接。希望有一天它会对某人有所帮助......

关于php - ldap_搜索() : Search: Operations error again,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46366832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com