.net核心应用程序中访问Web服务的相同代码在.net框架应用程序中不起作用

时间:2019-10-24 16:16:31

标签: .net .net-core webclient

我有一个基于.net core的控制台应用程序,该应用程序通过传递用户名和密码来访问Web服务。这工作得很好。但是,当我尝试在另一个控制台应用程序(.net框架)中运行相同的代码时,它失败并显示401未经授权错误。

在检查提琴手中的流量时,我注意到在使用基于.net Framework的应用程序时未设置凭据/带有凭据的标头,从而导致授权失败。

var validateURL = "<webservice URL>";
var strValidate = "";
WebClient client = new WebClient();
//client.Credentials = New NetworkCredential(username, password);
var credentials = "";
credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(username + ":" + password));
client.Headers.Add("Authorization", String.Format("Basic {0}", credentials));
strValidate = client.DownloadString(validateURL);
if (strValidate == "OK")
{
    Console.WriteLine("OK");
}

0 个答案:

没有答案