PHP下使用ldap域账户认证密码

以前用过一个模块来调用认证域帐号的,后来发现引用代码太多,因为只是为了做帐号密码认证,不做其他任何查询什么的,所以干脆拔代码自己精简下,下面的代码只是利用了输入正确的帐号密码创建ldap连接来判断密码是否正确。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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 && $_POST['password'] != "")
{//验证成功,跳转到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">';
}
?>