Показать сообщение отдельно
Старый 12.09.2014, 11:05   #1  
Evgeny Erm is offline
Evgeny Erm
Участник
 
4 / 10 (1) +
Регистрация: 12.09.2014
Клиентское приложение - WCF сервис - Axapta
Помогите, если кто-нибудь сталкивался с подобным. Разрабатываю программный комплекс для дипломного проекта. В клиентском приложении пользователь должен ввести имя пользователя и пароль. WCF сервис должен, используя эти учетные данные, подключиться к аксапте посредством Business Connector, и получить справочник для этого пользователя. Вопрос в том, как ГРАМОТНО передать учетные данные пользователя WCF сервису?
Знаю, что в классе-посреднике, который генерирует Visual Studio при добавлении ссылки на WCF-службу есть свойство ClientCredentials. Можно сделать так:

Код:
using(SamplesClient proxy = new SamplesClient())
{
      proxy.ClientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential("UserName", "UserPass");
      string response = proxy.SomeMethod();
 }
А как сделать, чтобы сервис воспользовался этими учетными данными при подключении к аксапте в SomeMethod? Или это делается как-то по другому?

Пока делаю так, но думаю что это не очень правильно:

Код:
using(SamplesClient proxy = new SamplesClient())
{
      string response = proxy.SomeMethod("UserName", "UserPass");
 }
На сервисе:
Код:
public string SomeMethod(UserName, Pass)
{
    NetworkCredential nc = new NetworkCredential(UserName, Pass);

     using (Axapta ax = new Axapta())
     {
          ax.LogonAs(UserName", "", nc, "", "", "", ConfigurationManager.AppSettings.Get("BC_CONFIG"));

    .....
    .....
      }
}