为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用WebClient登录网站?

如何使用WebClient登录网站?

C#
互换的青春 2019-10-19 14:26:00
我想使用C#中的WebClient对象下载某些内容,但是下载域要求我登录。如何使用WebClient登录并保留会话数据?我知道如何使用WebClient发布数据。
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

如果您遇到的问题是可以进行身份验证,但不能保留身份验证cookie,这是WebClient的cookie感知版本。


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进行表单身份验证,尽管我没有时间走,但至少它使您从Google入手。


查看完整回答
反对 回复 2019-10-19
?
达令说

TA贡献1821条经验 获得超6个赞

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


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


查看完整回答
反对 回复 2019-10-19
?
森栏

TA贡献1810条经验 获得超5个赞

我知道了。服务器使用表单身份验证。这要求您将用户名和密码发布到登录页面html中指定的操作url中。您还必须使用cookie容器,以接收对该帖子的响应随附的auth cookie。

查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 611 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信