Hello friends I'm using this function in my php application it was working perfectly in windows server, the customer asked to change the server into linux server the strange thing it authenticate some user correctly and don't with other although the connection and the searching is ok but the binding in the second time doesn't work with some users
function authLDAP($username, $pass, $dn) {
$ldap['server'] = 'x.local';
if (empty($dn)) {
$ldap['user'] = 'organization\\user';
$ldap['pass'] = 'xxxxxxx';
} else {
$ldap['user'] = $dn;
$ldap['pass'] = $pass;
}
$ldap['base_dn'] = "OU=QU, DC=Qassimu, DC=local";
$ds = ldap_connect($ldap['server']);
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
$bind = ldap_bind($ds, $ldap['user'], $ldap['pass']);
$filter = "(SamAccountname=$username)";
$sr = ldap_search($ds, $ldap['base_dn'], $filter, array('*'));
$rows = ldap_get_entries($ds, $sr);
if (empty($dn) and !empty($rows[0]['dn'])) {
// check user authintcation ..
return $this->authLDAP($username, $pass, $rows[0]['dn']);
} elseif ($rows[0]['samaccountname'][0] == $username) {
// // first LDAP binding
return true;
} else {
return false;
}
}