繁体   English   中英

如何使用WebClient登录网站?

[英]How do I log into a site with WebClient?

我想在C#中使用WebClient对象下载一些东西,但是下载域要求我登录。如何使用WebClient登录并保存会话数据? 我知道如何使用WebClient发布数据。

如果您遇到的问题是您可以进行身份​​验证,但是您无法在此处保留身份验证Cookie,这是一个Cookie感知版本的WebClient。

private class CookieAwareWebClient : WebClient
{
    public CookieAwareWebClient()
        : this(new CookieContainer())
    { }
    public CookieAwareWebClient(CookieContainer c)
    {
        this.CookieContainer = c;
    }
    public CookieContainer CookieContainer { get; set; }

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);

        var castRequest = request as HttpWebRequest;
        if (castRequest != null)
        {
            castRequest.CookieContainer = this.CookieContainer;
        }

        return request;
    }
}

编辑:你给我的链接使用HTTP POST的表单身份验证,我没有时间走路,但至少它让你开始谷歌。

看一下使用Credentials属性。 例如,如果使用基本身份验证,则必须使用正确的用户名和密码将该属性设置为NetworkCredential的实例。

指向的示例显示如何使用当前登录的用户凭据进行请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM