gpt4 book ai didi

.net - 为什么 .NET Web 请求类在没有身份验证 header 的情况下重新运行请求?

转载 作者:行者123 更新时间:2023-12-03 06:06:17 25 4
gpt4 key购买 nike

我正在使用自定义基本身份验证提供程序针对在 Azure 本地开发结构上运行的 WCF REST 服务编写 WPF 测试应用程序。

当测试客户端使用 WebClient 或 HttpWebRequest 进行调用时,它会传递授权 header ,并且自定义提供程序将对其进行身份验证。然后,服务再次收到相同的请求,但没有身份验证 header 。这一切都发生在对 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;
}
}

(此版本直接设置授权 header ,因为使用 WebClient 设置凭据似乎根本不起作用。)

编辑:Fiddler 显示初始调用正在获取 307 重定向,可能是由于 Azure 开发结构的原因。 .NET Web 类是否太愚蠢而无法在重定向时重新发送 Authorization header ?

最佳答案

答案是,WebClient 需要在 URL 末尾添加一个/。 (失败)

关于.net - 为什么 .NET Web 请求类在没有身份验证 header 的情况下重新运行请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com