Подтвердить что ты не робот

Как мне войти на сайт с помощью WebClient?

Я хочу загрузить что-то с помощью объекта WebClient на С#, но для домена загрузки мне необходимо войти в систему. Как я могу войти в систему и сохранить данные сеанса с помощью WebClient? Я знаю, как отправлять данные с помощью WebClient.

4b9b3361

Ответ 1

Если проблема связана с тем, что вы можете аутентифицироваться, но вы не можете сохранить 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;
    }
}

EDIT: Ссылка, которую вы мне дали, использует проверку подлинности с помощью HTTP POST, у меня нет времени ходить, хотя она, по крайней мере, дает вам начало с Google.

Ответ 2

Посмотрите на использование свойства Credentials. Например. если используется обычная проверка подлинности, вам нужно будет установить свойство в экземпляр NetworkCredential с правильным именем пользователя и паролем.

Образец указывает, как использовать текущие учетные данные пользователя для запроса.