Я знаю, что задавались варианты по этому вопросу, но я попробовал все предложенные решения безрезультатно.Мы пытаемся подключиться к службе WCF, которая использует базовую аутентификацию и безопасность транспорта (к сожалению, эти вещи нельзя изменить).Я не смог найти способ добавить наши учетные данные в TRANSPORT при вызове WCF;кажется, все решения заключаются в добавлении заголовков к сообщению.
Наша новейшая попытка - получить текстовый файл с сервера с помощью HttpWebClient, к которому прикреплены учетные данные, а затем выполнить вызов WCF;наша надежда на то, что аутентификация тогда ... Я не знаю, перейдите с HttpWebClient на клиент WCF (сгенерированный с помощью Service Reference).И хотя первый вызов работает, мы получаем сообщение CommunicationException при вызове WCF (и если я копаюсь в ответе, для параметра «Описание состояния» устанавливается значение «Неавторизовано»).
Есть ли способ, чтобы клиенты могли делитьсяавторизационный токен, который возвращается при успешной попытке?Это дурацкое поручение?Есть ли более простой способ сделать это, что я тоже должен ослепить?
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("https://server/OGTE/api/WinPhone7.html"));
request.Credentials = new NetworkCredential(_userName, _password, _domain);
request.Method = "GET";
request.BeginGetResponse((beginGetResponseResult) =>
{
try
{
HttpWebRequest requestWhileResponding = (HttpWebRequest)beginGetResponseResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)requestWhileResponding.EndGetResponse(beginGetResponseResult);
try
{
using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream()))
{
string info = streamReader1.ReadToEnd();
Dispatcher.BeginInvoke(() =>
{
textblock.Text = info;
});
}
_userDataService.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(_userDataService_GetDataCompleted);
_userDataService.GetDataAsync("0C5696BB-2D15-4EA7-B198-5C12B3E23B63");
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}
},
request);
}