我知道這個問題的變體已被問到,但我試過所有建議的解決方案都無濟於事。我們正嘗試連接到使用基本身份驗證和傳輸安全性的WCF服務(不幸的是,這些事情不能改變)。我一直無法找到一種方法在WCF調用中將我們的憑證添加到TRANSPORT;所有的解決方案似乎都是在爲郵件添加標題。在Windows Phone 7上使用基於SSL的基本身份驗證
我們最新的嘗試是使用HttpWebClient從服務器獲取文本文件,該文件附加了憑證,然後進行WCF調用;我們希望認證能夠......然後我不知道從HttpWebClient跳轉到WCF客戶端(使用Service Reference生成)。在第一次調用確實起作用的時候,我們在WCF調用中得到一個CommunicationException(如果我深入瞭解響應,狀態描述設置爲未授權)。
有沒有辦法讓客戶端共享成功嘗試返回的授權令牌?這是一個傻瓜的差事嗎?有沒有更簡單的方法可以讓我盲目地看到?
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);
}