我必须阅读用户的一些一般信息像姓名、姓氏、电子邮件、部门等来自带有 PHP 脚本的活动目录这是我的代码:define('DOMAIN_FQDN', 'domain.ltd');define('LDAP_SERVER', '192.168.30.1'); $user = strip_tags($_POST['username']) .'@'. DOMAIN_FQDN; $pass = stripslashes($_POST['password']); $conn = ldap_connect("ldap://". LDAP_SERVER ."/"); if (!$conn){ $err = 'Could not connect to LDAP server'; }else{ //define('LDAP_OPT_DIAGNOSTIC_MESSAGE', 0x0032); ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($conn, LDAP_OPT_REFERRALS, 0); $bind = @ldap_bind($conn, $user, $pass); ldap_get_option($conn, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extended_error); if ($bind){ //$base_dn = array("CN=Users,DC=". join(',DC=', explode('.', DOMAIN_FQDN)), "OU=Users,OU=People,DC=". join(',DC=', explode('.', DOMAIN_FQDN))); $base_dn = array("DC=". join(',DC=', explode('.', DOMAIN_FQDN)), "OU=*,DC=". join(',DC=', explode('.', DOMAIN_FQDN))); $result = ldap_search(array($conn,$conn), $base_dn, "(cn=*)"); if (!count($result)){ $err = 'Unable to login: '. ldap_error($conn); }else{ foreach ($result as $res){ $info = ldap_get_entries($conn, $res); print_r($info); } } } }此代码print_r($info);返回一个包含大量数据的数组,这意味着我的连接运行良好..但没有任何关于用户的事情我需要获取当前登录的用户数据这是错误的还是我必须在上面添加更多选项?活动目录中的用户数据:
1 回答
ABOUTYOU
TA贡献1812条经验 获得超5个赞
您必须决定要阅读哪些帐户。使用 filter (cn=*)
,您是在告诉 AD 为您提供cn
属性具有值的每个对象。这将匹配您域中的几乎所有 AD 对象,包括我认为您不想要的计算机。
如果要查找域中的所有用户,可以使用以下命令:
(objectClass=user)
如果您想查找一个特定用户,查询将取决于您对该用户的标识符。例如,如果您知道他们的用户名(比方说“PeimanF”),那么查询将如下所示:
(&(objectClass=user)(sAMAccountName=PeimanF))
- 1 回答
- 0 关注
- 164 浏览
添加回答
举报
0/150
提交
取消