if ($this->validate() && !is_null($this->_user = $this->getUser())) { if (Yii::$app->user->login($this->_user, $this->rememberMe ? 3600 * 24 * 30 : 0)); return $this->_user; } global $login_error; // текст ошибки, если авторизация не пройдена $domain="ex; $ldaphost = "exxample"; $ldapport = "389"; $base = "exx"; $filter="(*)"; $username = $this->username; $password = $this->password; //подсоединяемся к LDAP серверу $ldap = ldap_connect($ldaphost,$ldapport) or die('Cannot connect to LDAP Server.'); //Включаем LDAP протокол версии 3 ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version'); //Отключаем обработку рефералов для ldap v3 ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0) or die('Unable to set LDAP OPT REFERRALS'); var_dump(@ldap_bind($ldap, 'infotest.ad.kubbti.ru', 'password')); if ($ldap) /* Получаем данные из AD */ { // Пытаемся войти в LDAP при помощи введенных логина и пароля $bind = @ldap_bind($ldap,$username,$password); if ($bind) //Привязка LDAP прошла успешно! { // Проверим, является ли пользователь членом указанной группы и не отключен ли он. $result = ldap_search($ldap,$base,"(samAccountName=".$username.")");; $result_ent = ldap_get_entries($ldap,$result); if (!$result) { $login_error = 'Ошибка обращения к LDAP.'; return false; } // Получаем количество результатов предыдущей проверки $result_ent = ldap_get_entries($ldap,$result); if (!$result_ent) { $login_error = 'Результатов проверки получить не удалось'; return false; } } else { $login_error = 'Вы ввели неправильный <br>логин или пароль'; return false; } return $ldap=ldap_connect($ldaphost,$ldapport); ldap_close($ldap); } if ($result_ent['count'] != 0 ) { // тут код в случае если авторизации пройдена $fullname = $result_ent[0]["displayname"][0]; //полное имя пользователя $_SESSION["fullname"] = $fullname; //сохраняем в переменной сессии для отображения return true; exit; } else { $login_error = 'К сожалению, вам доступ закрыт.'; return false; }