如何在C#中使用基本身份验证从Rest服务获取xml

时间:2014-02-03 21:32:23

标签: c# xml authentication

我正在尝试从使用API​​的网站获取xml文件。在文档中,它说使用“​​基本身份验证”。其他人在此网站上发布了您可以将用户名和密码凭据发送到未受质疑的服务器。

Using HTTP Authentication with a C# WebRequest

你在哪里输入用户名和密码?我一直收到401错误。看来服务器正在获取请求但未授权程序获取该文件。

根据Microsoft的说法,您可以使用CredentialsCache,但在示例中我看不到您可以存储实际用户名和密码的位置。

http://msdn.microsoft.com/en-us/library/47as68k4(v=vs.110).aspx

namespace XmlAuthTest
{
class Program
{
    static void Main(string[] args)
    {
        var request = WebRequest.Create("https://www.host.com/rest-1/Data/Test/somedata");
        SetBasicAuthHeader(request, username, password);

        var response = request.GetResponse();

    }

    public static void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
    {
        string authInfo = userName + ":" + userPassword;
        authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
        request.Headers["Authorization"] = "Basic" + authInfo;
    }


    public static string password { get; set; }

    public static string username { get; set; }
}

}

我的目标是从Web服务的给定URL返回一个xml文件。

1 个答案:

答案 0 :(得分:2)

使用NetworkCredential

request.Credentials = new NetworkCredential(username, password);