Подключение к LDAP на сервере и на клиенте #690296


#0 by Halyavnik
1С 8.2.19.76 Управляемое приложение, клиент-сервер, MS SQL. Попытка получить данные с LDAP сервера. Тестовый компьютер и сервер приложений 1С входят в один домен, права пользователя: Domain Admin. Есть код, который работает на тонком клиенте, но не работает на сервере. Кто-нибудь с таким сталкивался? И, если сталкивался, то как боролся? [/code] Ошибка на сервере возникает в момент выполнения строки obj = ПолучитьCOMОбъект( RecordSet1.Fields.Value );
#1 by Halyavnik
Странно... Не поверю, что никто с этим не работал.
#2 by Mafoni
отладку на сервер включаешь и смотришь чего у тя вот тут RecordSet1.Fields.Value  - содержится !!
#3 by Mafoni
и заччем вот к этому RecordSet1.Fields.Value делать еще ПолучитьCOMОбъект ???
#4 by Mafoni
Вот так  RecordSet1.Fields.Value.cn обратится разве нельзя к полю cn ?
#5 by НеБорисНуралиев
Код на сервере запускается от имени usr1c82. Возможно у него нет прав на чтение данных домена.
#6 by Mafoni
Вас не смущает что выборка данных из LDAP сработала ? ибо ошибки вот тут не выдало RecordSet1 = oConnect.Execute( Query1 ); ???
#7 by Halyavnik
Да, пользователь USR1CV82 - локальный, со всеми вытекающими. Но подключение к LDAP серверу осуществляется с учтеной записью администратора домена. Может, я чего-то не знаю, но мне кажется, что рыть надо где-то в другом месте. Наверное, можно. Это - первая попытка работы с LDAP. Был нагуглен пример, всё взято оттуда и адаптировано к потребностям. Спасибо за информацию, попробую так. Есть предположение, что по каким-то причинам сервер приложений 1С не может создать нужный COM-объект (это явно видно из ошибки), но для понимания причины моих знаний не хватает.
#8 by Mafoni
попробуй вот так - RecordSet1.Fields.Value.cn и если не затруднит сообщи результат.
#9 by Halyavnik
Попробовал обратиться RecordSet1.Fields.Value.cn. Результат: нулевой. б). RecordSet1.Fields.Value.cn    {}: Значение не является значением объектного типа (cn)     Что, в принципе, предсказуемо после а).
#10 by Mafoni
попытка номер 2 поменяй сам запрос к LDAP на вот такой query = "SEL ECT ADsPath FR OM 'LDAP://DC ...... тут как у тя должно быть
#11 by Mafoni
пруф линк -
#12 by Mafoni
и да как всегда - результат в студию :)
#13 by Halyavnik
ИМХО, вряд ли поможет. На клиенте - ОК. На Сервере - ошибка.
#14 by Mafoni
тут трудно не согласиться
#15 by Halyavnik
Единственное предположение (немного сумасшедшее, но...), что   - всё-таки прав. oConnect - создается подключение (да, здесь админ домена) А вот это мы получаем уже под локальным USR1CV82, который не имеет прав. Проверить смогу только вечером, ибо придется перезапускать сервер приложений от другого пользователя, в рабочее время - таким не балуемся. Так что результат будет завтра. Спасибо за помощь.
#16 by Mafoni
Отпишись о результатах как попробуешь.
#17 by oleg_km
не обязательно перезапускать сервер под другим пользователем, можно наоборот, дать пользователю 1С права с AD хотя бы на чтение
#18 by Halyavnik
Эмммм... подскажете, как? Имеется в виду, подсказать, где в AD указываются права подключения к LDAP-серверу.
#19 by oleg_km
Права устанавливаются не на подключение. Права устанавливаются на объекты, по аналогии с файловой системой. Консоль открой администрирование пользователей и компьютеров. Можно права на конкретного пользователя установить, можно на целое подразделение. Но лучше сначала книжку почитатай, а то легко все сковырнуть
#20 by Halyavnik
Что-то не то. В консоли "Active Directory - пользователи и компьютеры" ни в свойствах ОУ, ни в свойствах конечных объектов НЕТ даже закладки "Безопасность". Подобная закладка была обнаружена в консоли "Редактирование ADSI" - но там и не даст выбрать локального пользователя (тем более, другого компьютера). Вставить локального пользователя сервера приложений 1С в группу AD, дабы получить хотя бы права "Прошедшие проверку" - опять же не удается. Боюсь, подобные манипуляции можно совершать только с пользователями AD.
#21 by НеБорисНуралиев
Если есть домен, лучше юзера для 1С доменного делать. Вы правы, локального юзера в доверенные домена не засунуть. По крайней мере я тоже не в курсе как это сделать.
#22 by oleg_km
Тогда придется перезапустить от доменного. С правами только нужно все проверить
#23 by Halyavnik
Итак, результат. Был создан доменный юзер с именем (не особо мудрствуя) USR1CV82. Этому пользователю были даны права на папку сервера 1С аналогичные правам локального пользователя (ибо сервер не сможет писать логи и не запустится). Никаких других действий с точки зрения прав не выполнялось. В свойствах службы (под чьим именем запускать) был указан свежесозданный пользователь. Дополнительно: Скорее всего, в силу тонкого клиента, выполнение одного и того же кода на сервере и на клиенте отличается раза в три (точные замеры не производились, т.к. не было такой цели), хотя ожидались примерно одинаковые показатели (напоминаю, что всё выполняется из одного сеанса Предприятия, на компьютере, являющемся исключительно сервером приложений 1С:Предприятия). ВотЪ, как-то так.
#24 by НеБорисНуралиев
А где быстрее? На клиенте или сервере?
#25 by Halyavnik
Простите, как-то упустил, что не указал. На сервере.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С