web-dev-qa-db-ja.com

WebClientでサイトにログインするにはどうすればよいですか?

C#でWebClientオブジェクトを使用して何かをダウンロードしたいのですが、ダウンロードドメインにログインする必要があります。WebClientを使用してセッションデータにログインして保持するにはどうすればよいですか? WebClientでデータを投稿する方法を知っています。

31
MonsterMMORPG

あなたが抱えている問題があなたが認証することができるということであるなら、あなたは認証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から始めることができます。

49