我试图从我的Windows机器上的本地Ubuntu VM Box连接到远程LDAP服务器.PHP代码是:
$ldap = ldap_connect("ldaps://11.22.33.44",636); ldap_set_option ($ldap, LDAP_OPT_REFERRALS, 0); ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); $username = "domain\usr"; $password = "blah"; $ds = ldap_bind($ldap, $username, $password ); if( $ds ){ echo "logged in!"; } else{ echo "failed to log in!"; exit; }
运行时我得到'登录!' 消息,所以我假设连接正常.但是,当我之后运行此PHP代码时:
$sr = ldap_search($ds, "OU=User Accounts,DC=Domain1,DC=foobar,DC=Local", "(|(sn=*))");
我收到此错误:
警告:ldap_search():提供的参数不是第37行/usr/share/nginx/www/ldap_test.php中的有效ldap链接资源
(它指的是包含ldap_search命令的行.如果连接成功并且创建了链接资源,这没有意义 - 任何想法?
ldap_bind
将返回true
或false
.您需要将结果传递ldap_connect
给ldap_search
- $ldap
在您的示例中.
$sr = ldap_search($ldap, "OU=User Accounts,DC=Domain1,DC=foobar,DC=Local", "(|(sn=*))");