PHP中跨受信任域的LDAP操作错误1

PHP中跨受信任域的LDAP操作错误1,php,ldap,Php,Ldap,我有一个广告林,其中我有多个域。有一个父域,其他域是子域。信任关系是双向的。我想从AD获取用户数据。我连接到根域控制器,并与驻留在其中一个子域中的服务帐户执行绑定。我能够成功地做到这一点。当我试图在广告中搜索用户时,我遇到了一个操作错误,没有详细说明错误产生的原因 我的代码: $ldap_server_url = "<LDAP Server URL>"; $ldap_bind_dn = "<Service Account Credentials>"; $ldap_bind

我有一个广告林,其中我有多个域。有一个父域,其他域是子域。信任关系是双向的。我想从AD获取用户数据。我连接到根域控制器,并与驻留在其中一个子域中的服务帐户执行绑定。我能够成功地做到这一点。当我试图在广告中搜索用户时,我遇到了一个操作错误,没有详细说明错误产生的原因

我的代码:

$ldap_server_url = "<LDAP Server URL>";
$ldap_bind_dn = "<Service Account Credentials>";
$ldap_bind_dn_password = "<Service Account Password>";

$ldap_search_base = "dc=parentdomain,dc=com";
$ldapconn = ldap_connect($ldap_server_url); 
if (version_compare(PHP_VERSION, '5.3.0') >= 0 ) {
    ldap_set_option(null, LDAP_OPT_NETWORK_TIMEOUT, 5);
}

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

$ldap_bind = @ldap_bind($ldapconn, $ldap_bind_dn, $ldap_bind_password);

$attrs = array("ou", "sn", "givenname", "mail");
if($ldap_bind){
    $search_filter = "(&(objectClass=*)(cn=myuser))";
    $search_result = ldap_search($ldapconn, $ldap_search_base, $search_filter, $attrs);
    echo ldap_errno($ldapconn);
    echo ldap_error($ldapconn);

}
$ldap_server_url=”“;
$ldap_bind_dn=“”;
$ldap_bind_dn_password=“”;
$ldap\u search\u base=“dc=parentdomain,dc=com”;
$ldapconn=ldap\u connect($ldap\u server\u url);
如果(版本比较(PHP版本,'5.3.0')>=0){
ldap_设置_选项(空,ldap_选项_网络_超时,5);
}
ldap_设置_选项($ldapconn,ldap_选项_协议_版本,3);
ldap\u set\u选项($ldapconn,ldap\u OPT\u references,0);
$ldap\u bind=@ldap\u bind($ldapconn,$ldap\u bind\u dn,$ldap\u bind\u password);
$attrs=数组(“ou”、“sn”、“givenname”、“mail”);
if($ldap_-bind){
$search_filter=“(&(objectClass=*)(cn=myuser))”;
$search\u result=ldap\u search($ldapconn,$ldap\u search\u base,$search\u filter,$attrs);
echo ldap_errno($ldapconn);
回显ldap_错误($ldapconn);
}

这与权限有关吗?

您是否尝试将
LDAP\u OPT\u references
设置为
1
?是的。它还提供相同的错误您是使用sAMAccountName作为服务凭据还是使用完整DN?似乎使用DN可能更好,因为我尝试使用DN,但仍然不起作用。我正在运行PHP的IIS服务器上运行这段代码。与此有关吗?