php 读取windows域服务器的用户信息
使用php从windows域服务器上读取用户信息
示例在xampp上运行,需要在php.ini里添加以下设置:
default_charset = “UTF-8”
extension=php_ldap.dll
另外,请将 php/phplibsasl.dll复制 到 apache/bin 目录下,重启apache
<h1>LDAP验证测试</h1> <?php header("Content-type:text/html;charset=utf-8"); error_reporting(0); if(!$_POST){ ?>; <form action="" method="post"> name:<input name="name" type="text" /> password:<input name="password" type="password" /> <input type="submit" value="submit" /></form> <?php } else { 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 "您的相关信息:<hr />"; echo var_dump($info); } else { echo "Username or password error!"; } ldap_close($ldapconn);//关闭 } ?>;