使用php从windows域服务器上读取用户信息
示例在xampp上运行,需要在php.ini里添加以下设置:
default_charset = “UTF-8”
extension=php_ldap.dll
另外,请将 php/phplibsasl.dll复制 到 apache/bin 目录下,重启apache
LDAP验证测试
<?php header("Content-type:text/html;charset=utf-8"); error_reporting(0); if(!$_POST){ ?>;
name:
password:
echo "connect to AD server";
$ldapconn = ldap_connect("10.0.13.23") or die("Could not connect to AD server."); //连接ad服务
echo "connect success!";
$set = ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
$name = $_POST["name"] ? $_POST["name"]: ""; //接受需要认证的用户名和密码
$password = $_POST["password"] ? $_POST["password"]: "";
$bd = ldap_bind($ldapconn, $name, $password) or die('Username or password error!'); //验证用户名和密码。
if($bd){
echo "OK";
//要搜索的父目录或者节点
$result = ldap_search( $ldapconn, "OU=用户,OU=3,DC=AD01,DC=xxx,DC=com", "(sn=李)") or die ("Error in query"); //根据条件搜索
$info = ldap_get_entries($ldapconn, $result); //获取认证用户的信息
echo "您的相关信息:
";
echo var_dump($info);
} else {
echo "Username or password error!";
} ldap_close($ldapconn);//关闭
} ?>;