15.05.2017, 16:35 | #21 |
Участник
|
Продолжу в этой теме.
Дальнейшей темой моего изучения стали веб-сервисы 1С. В Reference я добавил веб-сервис. Ax создала обёртку. Написал код. Вроде всё просто и понятно. И тут стал вопрос авторизации, как из Ax передать логин и пароль пользователя в 1С? Если на .net я просто пишу: service.ClientCredentials.UserName.UserName = "User"; service.ClientCredentials.UserName.Password = "Password"; то обёртка, созданная Ax, не имеет ClientCredentials. Подскажите, пожалуйста, как всё это делается в Ax? |
|
16.05.2017, 08:03 | #23 |
Участник
|
Player1 Спасибо, я читал эту тему... Как я написал уже выше, у меня нет проблем с авторизацией в .net. Я спрашиваю, как это сделать в Ax штатными средствами?
Последний раз редактировалось TravellerInTime; 16.05.2017 в 08:09. |
|
17.05.2017, 12:27 | #24 |
Участник
|
Мы как-то так это делаем. Сделали на C# прокси класс на основе сервиса 1С подключили сервис как web reference. Затем его добавили в референс в AX и испрользуем как ниже показано.
X++: version = CLRInterop::parseClrEnum("System.Web.Services.Protocols.SoapProtocolVersion","Soap11"); webService = new WebServicesProxyAX.Service1C.DAXTo1C(); webService.set_UseDefaultCredentials(true); webService.set_SoapVersion(version); if(timeout) webService.set_Timeout(timeout); if(urlWebServices) webService.set_Url(urlWebServices); Последний раз редактировалось Dron AKA andy; 17.05.2017 в 13:56. |
|
|
За это сообщение автора поблагодарили: TravellerInTime (1). |
18.05.2017, 08:51 | #25 |
Участник
|
Идея с обёрткой в .net понятна, и она уже приходила на ум.
Т.е. получается MS не сделала никакой возможности авторизации на веб-сервисе из Ax? Браво! |
|
19.05.2017, 09:10 | #26 |
Участник
|
Try this way:
X++: ClrObject clientType = CLRInterop::getType("CheckersReference.CheckersBotAPI.CheckersBotClient"); CheckersReference.CheckersBotAPI.CheckersBotClient myClient; System.ServiceModel.Description.ClientCredentials clientCredentials; System.ServiceModel.Security.WindowsClientCredential windowsCredentials; System.Net.NetworkCredential creds; creds = new System.Net.NetworkCredential(); creds.set_Domain("axforumDomain"); creds.set_UserName("axforumUser"); creds.set_Password("axforumUserPassword"); myClient = AifUtil::CreateServiceClient(clientType); clientCredentials = myClient.get_ClientCredentials(); windowsCredentials = clientCredentials.get_Windows(); windowsCredentials.set_ClientCredential(creds); myClient.MakeStepAI(); |
|
19.05.2017, 09:57 | #27 |
Участник
|
|
|
19.05.2017, 16:14 | #28 |
Участник
|
Цитата:
Обертка которую я написал это прокси класс для работы с сервисом (WebServicesProxyAX.Service1C), передача логина и пароля осуществляется обычным образом, так же как и в net. X++: creds = new System.Net.NetworkCredential(); creds.set_Domain("axforumDomain"); creds.set_UserName("axforumUser"); creds.set_Password("axforumUserPassword"); version = CLRInterop::parseClrEnum("System.Web.Services.Protocols.SoapProtocolVersion","Soap11"); webService = new WebServicesProxyAX.Service1C.DAXTo1C(); webService.set_SoapVersion(version); clientCredentials = webService.get_ClientCredentials(); windowsCredentials = clientCredentials.get_Windows(); windowsCredentials.set_ClientCredential(creds) Последний раз редактировалось maldini; 19.05.2017 в 16:36. |
|
22.05.2017, 10:05 | #29 |
Участник
|
|
|
22.05.2017, 10:42 | #30 |
Участник
|
Можете поподробнее описать, каким образом вы добавили сервиc?
Последний раз редактировалось maldini; 22.05.2017 в 11:23. |
|
23.05.2017, 08:52 | #31 |
Участник
|
Ну лучше чем MS я наверно не напишу.
Так что ссылка на первоисточник: https://msdn.microsoft.com/en-us/lib...(v=ax.50).aspx |
|
13.03.2018, 10:41 | #32 |
Участник
|
Как в итоге вышли из ситуации ?
Создали самописную обёртку ? Я тоже столкнулся с необходимостью вызвать из Ax2009 вэбсервис, которому нужно передавать username и password в ClientCredentials. Как уже здесь было написано, та обёртка, которую автоматически создаёт Ax2009 для вызова вэбсервиса, не содержит методов для оперирования ClientCredentials. Ax2009 SP1 RU5
__________________
Дмитрий |
|
14.03.2018, 11:27 | #33 |
Участник
|
|
|
14.03.2018, 12:27 | #34 |
Участник
|
Всем доброго дня. Похожую проблему решили так. Мы из нав) 1c не поддерживает ntlm к ws. Нав. Написали прокси под iis и настройками перевели на логин пароль. Обработку поищу для тестирования и выложу. Пример прокси также
__________________
--------------------------------------------------------------------------------------------- "Собрать стадо из баранов легко, трудно собрать стадо из кошек" Профессор Сергей Капица |
|
|
|