Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. <?php
  2.  
  3. class LdapLogin {
  4.    
  5.   static function checkPassword($username, $password)
  6.   {        
  7.     $ldap = ldap_connect("ldap.server.com");        
  8.     if ($ldap) {          
  9.       $username = 'xxx'; //User to bind
  10.       $password = "xxx"; //Pass
  11.      
  12.       //EL DN depende de tu arbol LDAP
  13.       $bind_results = @ldap_bind($ldap,"CN=$username,OU=Users,DC=server,DC=com"
  14.             , $password);
  15.            
  16.       if (!$bind_results) {
  17.         throw new Exception('Can\'t bind to LDAP server');
  18.       }
  19.      
  20.       $dn = "OU=Users,dc=server,dc=com";
  21.       $filter = "(|(sAMAccountName=" . $user_name . "*))";
  22.       $results = ldap_search($ldap, $dn, $filter);
  23.       $info = ldap_get_entries($ldap, $results);
  24.      
  25.       if (count($info) > 0) {
  26.         $cn = $info[0]['dn']; //El DN del usuario
  27.         //Si bindea el usuario/pass es vĂ¡lido
  28.         if (@ldap_bind($ldap, $cn , $user_password)){
  29.           ldap_close($ldap);
  30.           return true;
  31.         } else {
  32.           ldap_close($ldap);
  33.           return false;
  34.         }
  35.       }      
  36.       ldap_close($ldap);
  37.       return false;
  38.     } else {
  39.       throw new Exception('Can\'t connect to LDAP server');
  40.     }
  41.   }