使用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);//关闭 
} ?>;

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据