Имя: Пароль:
1C
1С v8
Проблема аутентификации при работе с WEB-сервисами
0 Черников
 
10.07.13
12:40
В моей конфигурации «ПоставщикWS»  WEB_сервисы (причем некоторые  рекомендовало 1С) , из которых все  успешно работают при вызове из конфигурации «ПолучательWS> в случае, если обе базы , как было первоначально, не содержат пользователей, а конструкторы WSОпределения содержат только первый аргумент – ссылку на публикацию сервиса.

Далее я ввел в конфигурацию «ПоставщикWS» справочник “Пользователи” из рабочей системы, создал роль «Администратор» и дал ей все права на все, что есть в системе. Зарегистрировал одного пользователя «UserWS» с паролем “abcde” и дал ему роль администратор. Теперь вызов ранее работавших сервисов из не измененной конфигурации «ПользовательWS» стал приводить к отказу с сообщением о сбое в конструкторе WSОпределения по причине «Аутентификация пользователя не выполнена». Я попробовал в соответствии с статьей Синтакс-помощнике о конструкторе WSОпределения добавить “UserWS”,”abcde” в аргументы конструктора. После этого ошибка переместилась в строку «Ответ = Прокси…» с той же причиной «Аутентификация пользователя не выполнена».
Что делать?
1 Serginio1
 
10.07.13
12:58
После получения прокси нужно добавить
Пароль для определения нужен для получения файла wsdl

Прокси.Пользователь = "UserWS";
   Прокси.Пароль = "abcde";
а для прокси уже для вызова
2 abtat
 
10.07.13
16:49
Я понял Ваш ответ как:
"Пароль для определения нужен для получения файла wsdl
После получения прокси нужно добавить уже для вызова
   Прокси.Пользователь = "UserWS";
   Прокси.Пароль = "abcde";"

Ввел правку:
   Определения = Новый WSОпределения("http://localhost/WebServicesDemo/ws/TestVegaSN.1cws?wsdl","UserWS", "abcde");
   Прокси      = Новый WSПрокси(Определения, "http://www.sample-package.org/VEGA", "TestVegaSN", "TestVegaSNSoap");
   Прокси.Пользователь = "UserWS";
   Прокси.Пароль = "abcde";
   Ответ       = Прокси.ПроверитьСерНомер(СтрокаНомера);

На строке Ответ получаю ошибку:

{Обработка.ПроверкаVEGAНомера.Форма.Форма.Форма(18)}: Ошибка при вызове метода контекста (ПроверитьСерНомер)
    Ответ = Прокси.ПроверитьСерНомер(СтрокаНомера);
по причине:

по причине:
Ошибка вызова операции сервиса:  {http://www.sample-package.org/VEGA}:TestVegaSN:ПроверитьСерНомер()
по причине:
Ошибка SOAP сервера:  Нарушение прав доступа к операции Web-сервиса:  {http://www.sample-package.org/VEGA}:TestVegaSN:ПроверитьСерНомер()

Проверив свойства Прокси перед обращением к сервису я убедился, что действительно, логин и пароль не передаются Прокси через WSОпределение и их надо заполнить отдельно, но это не помогло. Что еще можно попробовать, чтобы понять ситуацию?
3 Serginio1
 
10.07.13
16:53
А ты доступ к операции прописал?
То есть роли-Web-сервисы-твой сервис-ПроверитьСерНомер- использование галочка
4 abtat
 
11.07.13
15:38
Спасибо, Serginio1, за совет. Создавая роль "Администратор" я не спустился до функции. Сервисы работают, осталось только включить логин и пароль в J-Script, чтобы избежать запроса браузером у пользователя.
5 Serginio1
 
11.07.13
16:49
Можешь прописасать в default.vrd
юзера и пароль
ib='Srvr="SERVER";Ref="TEST";usr=Администратор;pwd=*****'
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.