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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.08.2012, 15:12   #1  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
AX 2012: Авторизация при вызове сервисов
Добрый день, пытаюсь решить следующую проблему с авторизацией при вызове сервисов в AX 2012 (build 6.0.1108.670).
Из приложения на C# в Visual Studio вызываю любой Ax-овский сервис (сделал свой кастомный), например:

PHP код:
WX_CommonServiceClient com = new WX_CommonServiceClient();
string s com.getPhoneTypes(null); 
Если данное C#-приложение выполняется под пользователем, который обладает достаточными правами в AX, все проходит успешно, если же, например, пользователь в AX не заведен, происходит ошибка

Код:
System.ServiceModel.FaultException: Failed to logon to Microsoft Dynamics AX.
То есть, авторизация осуществляется по вызывающему сервис пользователю.

Решить проблему можно следующим образом (в мануалах по сервисам такого не нашел, опытным путем определилось) - добавить следующий код:
PHP код:
WX_CommonServiceClient com = new WX_CommonServiceClient();
com.ClientCredentials.Windows.ClientCredential.UserName "user";
com.ClientCredentials.Windows.ClientCredential.Domain "domain.ru";
com.ClientCredentials.Windows.ClientCredential.Password "pass";
string s com.getPhoneTypes(null); 
- тогда под любым пользователем вызов сервиса происходит корректно.

Но данный вариант не очень нравится - хранить в коде или в конфигурационном файле учетные данные о пользователе с довольно широкими правами в AX.

При этом в настройке сервиса (в конфигурационной утилите в Configure Services) для каждого сервиса можно указать учетные данные (UserPrincipalName - по умолчанию заполняется данными учетной записи, под которой зарущен AOS; либо ServicePrincipalName и т.д.), и потом эта настройка копируется в C#-приложении - создается app.config, включающий в том числе и эти строки
PHP код:
<identity>
<
userPrincipalName value="user@domain.ru" />
</
identity
Но это все не дает никакого эффекта - можно везде заполнить эти значения, либо просто стереть - результат не меняется.

Есть ли у кого каеи мысли на этот счет - это просто недоделка пока в AX 2012 (ведь если настройки по userprincipalname есть, значит, они должны использоваться), либо я что-то не так настраиваю?
Теги
.net, aif, ax2009, ax2012, service, web сервис, webservice

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax-erp: Creating SSRS-Reports in Dynamics AX 2012 – What’s no longer possible in AX-reports Blog bot DAX Blogs 0 18.07.2012 12:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:56.