【问题标题】:How can I fetch LDAP phone number?如何获取 LDAP 电话号码?
【发布时间】:2011-10-31 15:51:02
【问题描述】:

下面的代码为我获取了 ldap 用户名和全名...我对 LDAP 有点陌生,所以我想知道如何获取用户电话号码?

我需要在我的代码中添加什么以使其也回显电话号码?

<?php

$x=1;
if($x==1)
{
    //LDAP stuff here.
    $username = "stuff";
    $password = "stuffhere";

    echo("Authenticating...");
    $ds = ldap_connect('ldap host');

        ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
    ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

    //Can't connect to LDAP.
    if( !ds )
    {
        echo "Error in contacting the LDAP server -- contact ";
        echo "technical services!  (Debug 1)";

        exit;
    }

    //Connection made -- bind anonymously and get dn for username.
    $bind = @ldap_bind($ds);

    //Check to make sure we're bound.
    if( !bind )
    {
        echo "Anonymous bind to LDAP FAILED.  Contact Tech Services! (Debug 2)";

        exit;
    }

    $search = ldap_search($ds, "rdn here", "uid=$username");

    //Make sure only ONE result was returned -- if not, they might've thrown a * into the username.  Bad user!
    if( ldap_count_entries($ds,$search) != 1 )
    {
        echo "Error processing username -- please try to login again. (Debug 3)";
        redirect(_WEBROOT_ . "/try1b.php");

        exit;
    }

    $info = ldap_get_entries($ds, $search);

    //Now, try to rebind with their full dn and password.
    $bind = @ldap_bind($ds, $info[0][dn], $password);
    if( !$bind || !isset($bind))
    {
        echo "Login failed -- please try again. (Debug 4)";
        redirect(_WEBROOT_ . "/try1b.php");

        exit;
    }

    //Now verify the previous search using their credentials.
    $search = ldap_search($ds, "rdn here", "uid=$username");

    $info = ldap_get_entries($ds, $search);
    if( $username == $info[0][uid][0] )
    {
echo $username;
     echo $info[0][cn][0]; 


        exit;
    }
    else
    {
        echo "Error. Access Denied";
        redirect(_WEBROOT_ . "/try1b.php");

        exit;
    }
    ldap_close($ds);
    exit;
}
?> 

【问题讨论】:

  • 您应该可以在返回的信息中看到它。在打印出用户名的地方添加: echo "
    ".print_r($info[0],true)."

    ";

标签: php ldap openldap


【解决方案1】:

RFC4519telephoneNumber 作为标准用户模式中电话号码的属性。在搜索请求的请求属性列表中列出此属性。有关查询目录服务器的详细信息,请参阅 "LDAP: Using ldapsearch""LDAP: Programming Practices"

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多