Total Pageviews

Thursday, 7 April 2016

PHP下,使用ldap做账户认证

以前用过一个模块来调用认证域帐号的,后来发现引用代码太多,因为只是为了做帐号密码认证,不做其他任何查询什么的,所以干脆拔代码自己精简下,下面的代码只是利用了输入正确的帐号密码创建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