我正在编写一个WPF测试应用程序,该应用程序针对在Azure本地开发结构上运行的WCF REST服务,该结构具有一个自定义的基本身份验证提供程序。
当测试客户机使用WebClient或HttpWebRequest进行调用时,它会传递授权头并由自定义提供程序对其进行身份验证。然后,服务再次接收相同的请求,但没有身份验证头。这一切都发生在对request.GetResponse或webClient.DownloadString的单个调用中。
请帮帮我,我快疯了。
客户代码:
using (var client = new WebClient())
{
client.Headers.Add(HttpRequestHeader.Authorization, "Basic " +
Convert.ToBase64String(Encoding.ASCII.GetBytes(UserName + ":" + Password)));
try
{
ResponseText = client.DownloadString(BaseAddress + "/" + MethodCall);
}
catch (WebException ex)
{
ResponseText = ex.Message + Environment.NewLine + Environment.NewLine + ex;
}
}
编辑:Fiddler显示最初的调用得到了307重定向,可能是因为azuredev结构。.NETWeb类是否太愚蠢而无法在重定向上重新发送授权头?