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