Перейти к контенту

alexlist

Пользователи
  • Число публикаций

    7
  • Регистрация

  • Последнее посещение

Недавние посетители профиля

1 725 просмотров профиля

Достижения alexlist

  1. Немного не верно. Правильнее будет так if ( $this->ldap_config['ldap_opt_referrals'] ) { @ldap_set_option( $this->connection_id, LDAP_OPT_REFERRALS, true ); }else{ @ldap_set_option( $this->connection_id, LDAP_OPT_REFERRALS, false ); }
  2. Всегда пожалуйста. Чесно говоря я думал зря писал. Три месяца прошло а народ даж не отреагировал ни как. А терь стало приятно что хоть комуто пригодилось Да там тоже ни чё сложного нет. Я после опубликования этой статьи пошел дальше и доработал до NTLM авторизации.(у меня на внутреннем сайте тоже стоит принудительная авторизация и пользователю как бы удобно не вводить пароль ещё раз) Но потом подумав и всё взвесив решил оставить так. Чтобы пользователи свои пароли доменные хоть иногда вспоминали. Да и в принципе после замены в шаблоне самого посследнего пункта <input type="hidden" name="CookieDate" value="1" /> Они логинятся только один раз. Дальше им насильно кладутся кукисы
  3. ВНИМАНИЕ Советую перед началом, обязательно обзавестись любым LDAP BROWSER-ом Я вооружился http://www.iit.edu/~gawojar/ldap] http://www.iit.edu/~gawojar/ldap[/url] (написан на джава) Можно другим. Не принципиально важно ПРЕАМБУЛА ЛДАП каталогов масса. И настроены они могут быть как угодно. Так что как показала практика не все так просто в привязке данного форума В моём случае это LDAP каталог на основе почтовика EXCHANGE Ещё в моей сети есть Новеловский каталог. Но в нём нет данных о почтовых адресах Поэтому было отдано предпочтение первому. Для мало просвещенных скажу что ЛДАП каталог может быть настроен так чтобы требовать авторизацию а может и пускать анонимно. В моём случае с авторизацией. Так вот сначала в LDAP BROWSERе пытаетесь подсоединится к Вашему каталогу. До тех пор пока не увидите полную ветку вашего домена со всеми пользователями и группами. (Пока этого не будет дальше идти бессмысленно.) Затем уже переносите все настройки от туда в файл "ldap\conf.php" В моём случае получилось <?php $LOGIN_CONF = array(); $LOGIN_CONF['ldap_server'] = '10.1.1.1'; $LOGIN_CONF['ldap_port'] = '389'; $LOGIN_CONF['ldap_server_username'] = 'cn=username'; $LOGIN_CONF['ldap_server_password'] = 'pass'; $LOGIN_CONF['ldap_uid_field'] = 'rdn'; $LOGIN_CONF['ldap_base_dn'] = 'o=MyDomain; $LOGIN_CONF['ldap_server_version'] = 3; $LOGIN_CONF['ldap_username_suffix'] = ''; $LOGIN_CONF['ldap_user_requires_pass'] = 1; ?> Если возникнут затруднения советую поиграться с DN путем (у меня вопреки всем стандартам не пускало при указании полного base_dn) Если всё ок. Идем дальше в админку форума (Закладка «НАСТРОЙКИ») Слева в меню->Системы авторизации->Управление->LDAP Авторизация->Изменить детали Выставляем галки как ниже. Заменить HTML формой выше? (Нет) Включить метод? (Да) Разрешить создание пользователя? (Да) Так как я уже говорил мой ЛДАП каталог работает вопреки всем стандартам (Микрософт как ни как) Пришлось помудрить в самом модуле лдапа. файл "ldap\auth.php" (1)Удаляем uid_field при поиске (Уже не помню зачем) $search = @ldap_search( $this->connection_id, $this->login_conf['ldap_base_dn'], $this->login_conf['ldap_uid_field']. '=' . $real_username, array( $this->login_conf['ldap_uid_field'] )меняем на $search = @ldap_search( $this->connection_id, $this->login_conf['ldap_base_dn'], $this->login_conf['ldap_uid_field']. '=' . $real_username ); (2) парсим и укорочиваем DN (при полном пути я даже через лдап браузер не мог законектится) $this->dn = @ldap_get_dn( $this->connection_id, $this->result );После кода добавляем $this->dn = strtok($this->dn, ","); (3)Возникала проблема что в случае успешного Первого логина пользователя учетка создавалась. Но его выкидывало на страницу регистрации и тока при последующих логинах было всё ок. Поэтому повторно загружаем данные о пользователе после его создания. if ( $this->allow_create ) { $this->create_local_member( $username, $password );После кода добавляем $this->_load_member( $username ); if ( $this->member['id'] ) { $this->return_code = 'SUCCESS'; } файл "loginauth\login_core.php" (1)Парсим результаты запросса к лдап каталогу. И берем для будущего пользователя всё что нам нужно. Если возникают проблемы, распечатаейте массив "$this->fields". И посмотрите что именно вы получаете в качестве параметров и получаете ли вообще. $member = array( 'name' => $username, 'members_created_remote' => 1, 'email' => $email_tmp,Меняем на $member = array( 'name' => $username, 'members_display_name' => (iconv('utf-8','windows-1251',$this->fields["cn"][0])), 'members_created_remote' => 0, 'email' => strtolower($this->fields["mail"][0]), (2)Эта строчка отправляла логиневшегося человека на дорегистрацию(Ввод имени и мыла). Мы уже всё взяли из ЛДАПА. поэтому нет смысла $this->ipsclass->print->redirect_screen( $this->ipsclass->lang['partial_login'], 'act=reg&CODE=complete_login&mid='.$member['id'].'&key='.$timenow );Удаляем этот кусок кода ШАБЛОНЫ Когда всё работает можно и с шаблонами немного поигратся. Так как в моей организации каждый сидит за своим компом. И пользователем может быть только доменный юзер. То нет надобности в таких кнопочках как "Регистрация", "Вход", "Выход" Их можно удалить Первоночально в админке форума я запретил саму страницу "Регистрации" В файле шаблона "skin_global.php" <p class="pcen"><b>{$this->ipsclass->lang['guest_stuff']}</b> ( <a href="{$this->ipsclass->base_url}act=Login&CODE=00">{$this->ipsclass->lang['log_in']}</a> | <a href="{$this->ipsclass->base_url}act=Reg&CODE=00">{$this->ipsclass->lang['register']}</a> )Меняем на <p class="pcen"><b>{$this->ipsclass->lang['guest_stuff']}</b> ---------------------------------------------------- <p class="home"><b>{$this->ipsclass->lang['logged_in_as']} <a href="{$this->ipsclass->base_url}showuser={$this->ipsclass->member['id']}">{$this->ipsclass->member['members_display_name']}</a></b> ( <a href="{$this->ipsclass->base_url}act=Login&CODE=03&k={$this->ipsclass->md5_check}">{$this->ipsclass->lang['log_out']}</a> )</p>Меняем на <p class="home"><b>{$this->ipsclass->lang['logged_in_as']} <a href="{$this->ipsclass->base_url}showuser={$this->ipsclass->member['id']}">{$this->ipsclass->member['members_display_name']}</a></b></p> В файле шаблона "skin_login.php" Излишние предупреждения о регистрациях тока напрягают пользователей. ТАк что можно их почикать <div class="errorwrap"> <h4>{$this->ipsclass->lang['form_title_attention']}</h4> <p>{$this->ipsclass->lang['login_text']}</p> <p><b>{$this->ipsclass->lang['forgot_pass']} <a href="{$this->ipsclass->vars['board_url']}/index.{$this->ipsclass->vars['php_ext']}?act=Reg&CODE=10">{$this->ipsclass->lang['pass_link']}</a></b></p> </div>Удаляем кусок кода --------------------------------------------------- Это если мы хотим всегда запоминать польльзователя <tr> <td width="10%"><input type="checkbox" name="CookieDate" value="1" checked="checked" /></td> <td width="90%"><b>{$this->ipsclass->lang['rememberme']}</b><br /><span class="desc">{$this->ipsclass->lang['notrecommended']}</span></td> </tr>Заменяем на <input type="hidden" name="CookieDate" value="1" />
  4. Есть ли у кого успешный опыт?
  5. to 'Xam4uk' Это единственный более или менне нормальный форум под ASP В виндовых средах он очень известен
  6. Хочу перехать с Web Wiz Forums на IPB! Кто сталкивался? И есть ли конвертилки?
  7. У меня в сети есть два Связаных LDAP каталога. Один Новеловский без авторизации Второй Есченжевский с авторизацией. пытаюсь привязать к ним Форумовскую авторизацию Ни чего не выходит. У кого нибудь получалось?
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.