Je veux télécharger quelque chose en utilisant un objet WebClient en C#, mais le domaine de téléchargement exige que je sois connecté. Comment puis-je me connecter et conserver les données de session à l'aide de WebClient ? Je sais comment afficher des données avec WebClient.
Réponses
Trop de publicités?Si le problème que vous rencontrez est que vous pouvez vous authentifier mais que vous ne pouvez pas conserver le cookie d'authentification, voici une version de WebClient qui tient compte des cookies.
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 : Le lien que vous m'avez donné utilise l'authentification des formulaires avec HTTP POST, je n'ai pas le temps de le parcourir mais au moins il vous donne un début avec Google.
Jetez un coup d'œil à l'utilisation du Références propriété. Par exemple, si l'authentification de base est utilisée, vous devrez définir la propriété sur une instance de NetworkCredential avec le nom d'utilisateur et le mot de passe appropriés.
Le site échantillon montre comment utiliser les informations d'identification de l'utilisateur actuellement connecté pour la demande.