AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.05.2017, 16:35   #21  
TravellerInTime is offline
TravellerInTime
Участник
Аватар для TravellerInTime
 
124 / 31 (2) +++
Регистрация: 14.07.2003
Адрес: Россия, Тула
Продолжу в этой теме.
Дальнейшей темой моего изучения стали веб-сервисы 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  
TravellerInTime is offline
TravellerInTime
Участник
Аватар для TravellerInTime
 
124 / 31 (2) +++
Регистрация: 14.07.2003
Адрес: Россия, Тула
Player1 Спасибо, я читал эту тему... Как я написал уже выше, у меня нет проблем с авторизацией в .net. Я спрашиваю, как это сделать в Ax штатными средствами?

Последний раз редактировалось TravellerInTime; 16.05.2017 в 08:09.
Старый 17.05.2017, 12:27   #24  
maldini is offline
maldini
Участник
 
102 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Мы как-то так это делаем. Сделали на 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  
TravellerInTime is offline
TravellerInTime
Участник
Аватар для TravellerInTime
 
124 / 31 (2) +++
Регистрация: 14.07.2003
Адрес: Россия, Тула
Идея с обёрткой в .net понятна, и она уже приходила на ум.
Т.е. получается MS не сделала никакой возможности авторизации на веб-сервисе из Ax? Браво!
Старый 19.05.2017, 09:10   #26  
MazZzDaI is offline
MazZzDaI
Участник
Аватар для MazZzDaI
 
39 / 24 (1) +++
Регистрация: 19.09.2013
Адрес: Украина, Одесса
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  
TravellerInTime is offline
TravellerInTime
Участник
Аватар для TravellerInTime
 
124 / 31 (2) +++
Регистрация: 14.07.2003
Адрес: Россия, Тула
Цитата:
Сообщение от MazZzDaI Посмотреть сообщение
Try this way:
Вы наверно привели пример, для Ax 2012?
В 2009 AifUtil не имеет метода CreateServiceClient.
Старый 19.05.2017, 16:14   #28  
maldini is offline
maldini
Участник
 
102 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Цитата:
Сообщение от TravellerInTime Посмотреть сообщение
Идея с обёрткой в .net понятна, и она уже приходила на ум.
Т.е. получается MS не сделала никакой возможности авторизации на веб-сервисе из Ax? Браво!
А каким образом вы вызываете сервис 1С без создания прокси классов?
Обертка которую я написал это прокси класс для работы с сервисом (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  
TravellerInTime is offline
TravellerInTime
Участник
Аватар для TravellerInTime
 
124 / 31 (2) +++
Регистрация: 14.07.2003
Адрес: Россия, Тула
Цитата:
Сообщение от maldini Посмотреть сообщение
А каким образом вы вызываете сервис 1С без создания прокси классов?
Я использую родную обёртку, которая Ax сама создала при добавлении сервиса в References. И я пытаюсь понять, можно ли в ней как-нибудь передавать пользователя и пароль.
Старый 22.05.2017, 10:42   #30  
maldini is offline
maldini
Участник
 
102 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Цитата:
Сообщение от TravellerInTime Посмотреть сообщение
Я использую родную обёртку, которая Ax сама создала при добавлении сервиса в References. И я пытаюсь понять, можно ли в ней как-нибудь передавать пользователя и пароль.
Можете поподробнее описать, каким образом вы добавили сервиc?

Последний раз редактировалось maldini; 22.05.2017 в 11:23.
Старый 23.05.2017, 08:52   #31  
TravellerInTime is offline
TravellerInTime
Участник
Аватар для TravellerInTime
 
124 / 31 (2) +++
Регистрация: 14.07.2003
Адрес: Россия, Тула
Цитата:
Сообщение от maldini Посмотреть сообщение
Можете поподробнее описать, каким образом вы добавили сервиc?
Ну лучше чем MS я наверно не напишу.
Так что ссылка на первоисточник:
https://msdn.microsoft.com/en-us/lib...(v=ax.50).aspx
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: AX Performance - What information and data to collect when you want to open a support case Blog bot DAX Blogs 0 29.09.2015 15:11
emeadaxsupport: AX Performance Troubleshooting Checklist Part 2 Blog bot DAX Blogs 0 09.09.2014 16:11
axinthefield: Compatibility Testing for Microsoft Dynamics AX Blog bot DAX Blogs 0 23.06.2012 02:26
axforum blogs: Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 - Этап 2 Blog bot DAX Blogs 0 12.07.2011 14:11
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:55.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.