PHP 从活动目录中读取用户信息

我必须阅读用户的一些一般信息


像姓名、姓氏、电子邮件、部门等来自带有 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);返回一个包含大量数据的数组,这意味着我的连接运行良好..


但没有任何关于用户的事情


我需要获取当前登录的用户数据


这是错误的还是我必须在上面添加更多选项?


活动目录中的用户数据:

http://img3.mukewang.com/61a0c532000171be04160502.jpg

MYYA
浏览 165回答 1
1回答

ABOUTYOU

您必须决定要阅读哪些帐户。使用 filter (cn=*),您是在告诉 AD 为您提供cn属性具有值的每个对象。这将匹配您域中的几乎所有 AD 对象,包括我认为您不想要的计算机。如果要查找域中的所有用户,可以使用以下命令:(objectClass=user)如果您想查找一个特定用户,查询将取决于您对该用户的标识符。例如,如果您知道他们的用户名(比方说“PeimanF”),那么查询将如下所示:(&(objectClass=user)(sAMAccountName=PeimanF))
打开App,查看更多内容
随时随地看视频慕课网APP