Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> авторизация LDAP, проблема 
V
    Опции темы
comtat
Дата 26.11.2007, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 1
Всего: 71



Код

    $ds = @ldap_connect("192.168.1.1", 389);
    if ($ds){
         if ($this->serverType == "ActiveDirectory") {
                                    $checkDn = "$uname@$this->domain";
                                } else {
                                    $checkDn = $this->getUserIdentifier() . "=$uname, " . $this->setDn(true);
                                }
        $b = ldap_bind($ds, $checkDn, $Password);    
        if (!$b) $res = ldap_error($ds);
        @ldap_unbind ($ds);
    }
                return $res;
Код

    function getUserIdentifier() {
        if ($this->serverType == "ActiveDirectory") {
            return "samaccountname";
        } else {
            return "uid";
        }
    }

Припцип такой пользователь вводит логин и пароль.
Подключаемся к OpenLDAP. Вроде все отлично, но есть такая проблема
при выдает ошибку  "Incorect DN syntax"
Как с этим бороться  ??


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
comtat
Дата 17.12.2007, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 1
Всего: 71



Проблема решена и вот решение
Код

function Authorization($strLogin, $strPwd){
    if(!function_exists("ldap_connect"))
        return "This Authorization method not supported!";
    
    $res = "OK";

    if ($strPwd === "") 
        return "Empty passwords are not allowed";
    $ds = @ldap_connect("192.169.1.1", 389);
    if ($ds){
        if ($GLOBALS["core"]->settings["ldap_type"] == 0) { // Active Directiry
                                    $user = $strLogin."@".$GLOBALS["core"]->settings[$module]["ldap_dc"];
                               } else { // LDAP
                              if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
                return "Не верная версия протокола";
            $r = @ldap_bind($ds);
            if (!$r) return "Error: no connect to server";
            $filter = '(uid='.$strLogin.')';
            $sr = ldap_search($ds,$GLOBALS["core"]->settings[$module]["ldap_dc"],$filter,array('uid'));
            if (!$sr) return "Fail!!!";
            $n = @ldap_count_entries($ds,$sr);
            if ($n != 1) return "Error: No or to many login!!!";
            $info = ldap_get_entries($ds,$sr);
            $user = $info[0]['dn'];
                               }
                               $user = iconv("WINDOWS-1251", "UTF-8", $user);
                               $strPwd = iconv("WINDOWS-1251", "UTF-8", $strPwd);
        if (!@ldap_bind($ds, $user, $strPwd))
            $res = ldap_error($ds);
        @ldap_unbind ($ds);
    } else return "Fail!!!"; 
    return $res;
}//Auth



--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.