我需要构建一个C#应用程序,它接受一个特定的URL作为输入,并将网页(这是所有文本)加载到一个字符串中。困难在于此URL需要基本身份验证才能加载页面。我需要将凭证硬编码到应用程序中;我无法让用户自己输入。我不相信有可能通过用户名和& p / w作为URL的一部分。有没有办法用C#静默处理这个?
在非常基本的术语中,如果不需要身份验证,我将加载页面:
static void Main(string[] args)
{
if (args.Length == 0)
return;
WebClient webclient = new WebClient();
string output = webclient.DownloadString(args[0]);
Console.WriteLine(output);
}
答案 0 :(得分:7)
Basic authentication只是您对网络服务器的请求中的标头。添加Authorization
标题以及正确的值,您就可以了。
以下是该标题的示例:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Basic
是必需的,因为您要使用基本身份验证
QWxhZGRpbjpvcGVuIHNlc2FtZQ==
是用户名:密码的Base64表示形式,在本例中为Aladdin:open sesame
使用WebClient
类时,您不必自己编写该标题,可以在调用DownloadString
之前使用Credentials
属性:
webclient.Credentials = new NetworkCredential(userName, password);