通过C#中的基本身份验证对URL进行静默身份验证

时间:2013-01-07 15:02:05

标签: c#

我需要构建一个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);
}

1 个答案:

答案 0 :(得分:7)

Basic authentication只是您对网络服务器的请求中的标头。添加Authorization标题以及正确的值,您就可以了。

以下是该标题的示例:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Basic是必需的,因为您要使用基本身份验证
QWxhZGRpbjpvcGVuIHNlc2FtZQ==用户名:密码的Base64表示形式,在本例中为Aladdin:open sesame

使用WebClient类时,您不必自己编写该标题,可以在调用DownloadString之前使用Credentials属性:

webclient.Credentials = new NetworkCredential(userName, password);