Помогите, если кто-нибудь сталкивался с подобным. Разрабатываю программный комплекс для дипломного проекта. В клиентском приложении пользователь должен ввести имя пользователя и пароль. 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"));
.....
.....
}
}