【问题标题】:Using HTTP Authentication with a C# WebRequest通过 C# WebRequest 使用 HTTP 身份验证
【发布时间】:2009-04-02 00:38:41
【问题描述】:

我想向需要身份验证的页面发出 Web 请求。我该怎么做呢?我发现了一些说可能使用 Credentials 属性的东西,但我不确定如何使用它。

【问题讨论】:

    标签: c# authentication webrequest


    【解决方案1】:

    将新的NetworkCredential 实例分配给Credentials 属性:

    webClient.Credentials = new NetworkCredential("Mehrdad", "Password");
    

    【讨论】:

    • 这对我不起作用,但 ikutsin 的回答明确设置“授权”标头与基本身份验证信息对我有用。
    • 两种方法(凭证和添加标题)都有效。但我真的不知道哪个更好,为什么?
    【解决方案2】:

    基本认证示例:

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

    http://blog.kowalczyk.info/article/at3/Forcing-basic-http-authentication-for-HttpWebReq.html

    【讨论】:

    • 好点在这里。这样可以避免额外的闲聊也可能是性能问题。
    【解决方案3】:

    也可以自动进行身份验证。这将使用当前登录用户的凭据。

    webClient.Credentials = CredentialCache.DefaultCredentials
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 2012-09-24
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      相关资源
      最近更新 更多