AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 15.05.2017, 16:35   #21  
TravellerInTime is offline
TravellerInTime
Участник
TravellerInTime's Avatar
 
130 / 36 (2) +++
Join Date: 14.07.2003
Location: Россия, Тула
Продолжу в этой теме.
Дальнейшей темой моего изучения стали веб-сервисы 1С.
В Reference я добавил веб-сервис. Ax создала обёртку. Написал код. Вроде всё просто и понятно. И тут стал вопрос авторизации, как из Ax передать логин и пароль пользователя в 1С?
Если на .net я просто пишу:
service.ClientCredentials.UserName.UserName = "User";
service.ClientCredentials.UserName.Password = "Password";
то обёртка, созданная Ax, не имеет ClientCredentials.
Подскажите, пожалуйста, как всё это делается в Ax?
Old 16.05.2017, 08:03   #23  
TravellerInTime is offline
TravellerInTime
Участник
TravellerInTime's Avatar
 
130 / 36 (2) +++
Join Date: 14.07.2003
Location: Россия, Тула
Player1 Спасибо, я читал эту тему... Как я написал уже выше, у меня нет проблем с авторизацией в .net. Я спрашиваю, как это сделать в Ax штатными средствами?

Last edited by TravellerInTime; 16.05.2017 at 08:09.
Old 17.05.2017, 12:27   #24  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Join Date: 06.03.2007
Location: москва
Мы как-то так это делаем. Сделали на 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);

Last edited by Dron AKA andy; 17.05.2017 at 13:56.
This post has been rated by: TravellerInTime (1).
Old 18.05.2017, 08:51   #25  
TravellerInTime is offline
TravellerInTime
Участник
TravellerInTime's Avatar
 
130 / 36 (2) +++
Join Date: 14.07.2003
Location: Россия, Тула
Идея с обёрткой в .net понятна, и она уже приходила на ум.
Т.е. получается MS не сделала никакой возможности авторизации на веб-сервисе из Ax? Браво!
Old 19.05.2017, 09:10   #26  
MazZzDaI is offline
MazZzDaI
Участник
MazZzDaI's Avatar
 
44 / 35 (2) +++
Join Date: 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();
Old 19.05.2017, 09:57   #27  
TravellerInTime is offline
TravellerInTime
Участник
TravellerInTime's Avatar
 
130 / 36 (2) +++
Join Date: 14.07.2003
Location: Россия, Тула
Quote:
Originally Posted by MazZzDaI View Post
Try this way:
Вы наверно привели пример, для Ax 2012?
В 2009 AifUtil не имеет метода CreateServiceClient.
Old 19.05.2017, 16:14   #28  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Join Date: 06.03.2007
Location: москва
Quote:
Originally Posted by TravellerInTime View Post
Идея с обёрткой в .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)

Last edited by maldini; 19.05.2017 at 16:36.
Old 22.05.2017, 10:05   #29  
TravellerInTime is offline
TravellerInTime
Участник
TravellerInTime's Avatar
 
130 / 36 (2) +++
Join Date: 14.07.2003
Location: Россия, Тула
Quote:
Originally Posted by maldini View Post
А каким образом вы вызываете сервис 1С без создания прокси классов?
Я использую родную обёртку, которая Ax сама создала при добавлении сервиса в References. И я пытаюсь понять, можно ли в ней как-нибудь передавать пользователя и пароль.
Old 22.05.2017, 10:42   #30  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Join Date: 06.03.2007
Location: москва
Quote:
Originally Posted by TravellerInTime View Post
Я использую родную обёртку, которая Ax сама создала при добавлении сервиса в References. И я пытаюсь понять, можно ли в ней как-нибудь передавать пользователя и пароль.
Можете поподробнее описать, каким образом вы добавили сервиc?

Last edited by maldini; 22.05.2017 at 11:23.
Old 23.05.2017, 08:52   #31  
TravellerInTime is offline
TravellerInTime
Участник
TravellerInTime's Avatar
 
130 / 36 (2) +++
Join Date: 14.07.2003
Location: Россия, Тула
Quote:
Originally Posted by maldini View Post
Можете поподробнее описать, каким образом вы добавили сервиc?
Ну лучше чем MS я наверно не напишу.
Так что ссылка на первоисточник:
https://msdn.microsoft.com/en-us/lib...(v=ax.50).aspx
Old 13.03.2018, 10:41   #32  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Join Date: 28.05.2003
Location: в глуши
Как в итоге вышли из ситуации ?
Создали самописную обёртку ?

Я тоже столкнулся с необходимостью вызвать из Ax2009 вэбсервис, которому нужно передавать username и password в ClientCredentials. Как уже здесь было написано, та обёртка, которую автоматически создаёт Ax2009 для вызова вэбсервиса, не содержит методов для оперирования ClientCredentials.
Ax2009 SP1 RU5
__________________
Дмитрий
Old 14.03.2018, 11:27   #33  
TravellerInTime is offline
TravellerInTime
Участник
TravellerInTime's Avatar
 
130 / 36 (2) +++
Join Date: 14.07.2003
Location: Россия, Тула
Quote:
Originally Posted by Damn View Post
Как в итоге вышли из ситуации ?
Создали самописную обёртку ?
Мы отказались от использования веб-сервиса - он не предоставляет нужной нам информации. Работа с 1С организована через COM.
Old 14.03.2018, 12:27   #34  
Captain is offline
Captain
Участник
Лучший по профессии 2017
 
300 / 81 (3) ++++
Join Date: 28.02.2003
Всем доброго дня. Похожую проблему решили так. Мы из нав) 1c не поддерживает ntlm к ws. Нав. Написали прокси под iis и настройками перевели на логин пароль. Обработку поищу для тестирования и выложу. Пример прокси также
__________________
---------------------------------------------------------------------------------------------
"Собрать стадо из баранов легко, трудно собрать стадо из кошек" Профессор Сергей Капица
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 00:51.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.