![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
Если в приложении начать использовать ADSI, вызвав ADsOpenObject (или ADsGetObject), то после установки нового ADSI-провайдера (IIS в моём случае), работа с ним будет невозможна до перезапуска самого приложения
столкнулся с этим в .нет приложении, доковырялся до плюсов, думаю, что если удастся найти плюсовое решение, то и в .нете его сумею как-нибудь прикрутить вот моя тема в .нетовом разделе, там побольше информации о порядке вызовов и самой проблеме - http://forum.vingrad.ru/forum/topic-286010...y2064405/0.html |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
Я очень далек от ldap, но поставил себе ADAM для тестов и попробывал такой код выполнить, всё ок:
или как-нибудь на ADAM можно симитировать проблему? кстати, число 193 непонятно откуда... Добавлено через 3 минуты и 9 секунд кстати и с "IIS://localhost" тоже нет проблем (у меня стоит iis ессно) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
на начало выполнения кода ИИСа не должно быть в системе, нужно его удалить через компоненты системы, например (через роли дольше получается)
после прохождения первого вызова AdsOpenObject нужно повисеть на бряке, устанавливая в это время ИИС, как установится - продолжить работу 193 - это комбинация значений ADS_AUTHENTICATION_ENUM, опытным дебажным путём получена во время изучения кода SystemDirectoryServices (с этим значением вызывается) сейчас перепроверил 193 с этим значением получается домен (Domain.GetCurrentDomain()), оно равно AuthenticationTypes.Sealing | AuthenticationTypes.Signing | AuthenticationTypes.Secure для простой DirectoryEntry там просто ADS_SECURE_AUTHENTICATION = 0x1, но это роли не играет, проблема воспроизводится как с 1, так и с 193 Это сообщение отредактировал(а) mihryak - 6.1.2010, 02:12 |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
в общем внутри ADsOpenObject вызывается ldap_init...
Тут вот пишут что надо флаг указывать ADS_SERVER_BIND, если указывается явно сервер (как я понимаю у вас указывается). Кстати, можно взять сниффер и посмотреть какие запросы идут (ониж идут по ldap один фиг).... и поразмыслить. Ну, на крайний случай, можно, наверняка, вызвать CoUninitialize + CoInitialize .... Добавлено через 1 минуту и 34 секунды кстати, LdapGetLastError должна быть интересна... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
||||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
прошу прощения за паузу, отложил на время вопрос
LdapGetLastError упорно возрвращает 0 (LDAP_ADMIN_LIMIT_EXCEEDED), даже если её вызвать в самой первой строчке ковыряния с ldap_init и флагами тоже ничего не дали, к сожалению есть подозрение, что работа с ИИСом вообще к ldap не относится (http://msdn.microsoft.com/en-us/library/aa772235%28VS.85%29.aspx) наверное, буду пытаться решить задачу каким-нибудь совершенно иным способом, вот только придумать бы его |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |