首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ldap登录表单可以使用,但需要添加active-directory组访问权限

ldap登录表单可以使用,但需要添加active-directory组访问权限
EN

Stack Overflow用户
提问于 2010-03-17 00:11:39
回答 1查看 594关注 0票数 1

我创建了一个表单,要求您登录,然后针对ldap服务器/active-directory验证user/pass,如果成功,它将创建一个会话,将在每个页面上检查该会话。

现在我想要检查会话,这是登录人员的用户名,并使用ldap_search搜索他们,这样我就可以检查他们属于哪个组,并通过一个函数传递该组,以验证他们是否可以查看该页面。

每个页面都将由某个或多个用户组访问,这些用户组是在Active Directory中定义的。

我不确定如何使用ldap_search来做到这一点,或者这只是我试图解决的难题的一部分。

任何帮助都很感谢--谢谢!

在下面的示例代码中,它查看用户是否属于学生活动目录组(我不知道此代码是否有效,但它应该可以让您了解我想要完成的任务)。

代码语言:javascript
复制
$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';
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-24 17:48:19

引用自php.net ldap_search() manual

如果出现错误,

将返回搜索结果标识符或FALSE。

您必须使用ldap_count_entries()来检查ldap搜索是否确实找到了条目:

代码语言:javascript
复制
$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';
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2456028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档