以前用过一个模块来调用认证域帐号的,后来发现引用代码太多,因为只是为了做帐号密码认证,不做其他任何查询什么的,所以干脆拔代码自己精简下,下面的代码只是利用了输入正确的帐号密码创建ldap连接来判断密码是否正确。
<?php if (isset($_POST['UserName'])) { $_SESSION['txtNo']=$_POST['UserName'] ; $ldapConnect=ldap_connect('192.168.1.200' , '389' ); //建立到ldap服务器的连接192.168.1.200是ldap服务器ip,389是ldap服务器端口(默认389) $bind= @ldap_bind($ldapConnect , $_POST['UserName'] . '@yourname.local',$_POST['PassWord'] ); //验证帐号密码,ldap_bind第一个为绑定的连接,第二个为用户名(注意是否有后缀),第三个为密码。 if($bind ) {//验证成功,跳转到ok.php $_SESSION['login']="ok"; echo '<meta http-equiv="refresh" content="0;url=ok.php">'; } else {//验证失败,弹出提示,并跳转回login.php echo "<script>alert('用户名或密码错误')</script>"; echo '<meta http-equiv="refresh" content="0;url=login.php">'; } ldap_close($ldapConnect); //关闭ldap连接 } else { echo "<script>alert('用户名或密码错误')</script>"; echo '<meta http-equiv="refresh" content="0;url=login.php">'; } ?>
from http://www.penglei.name/archives/php-ldap-ad-auth.html