Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I log into a site with WebClient?

I want to download something using a WebClient object in C#, but the download domain requires me to be logged in. How can I log in and keep session data using WebClient? I know how to post data with WebClient.

like image 392
MonsterMMORPG Avatar asked Jan 19 '11 21:01

MonsterMMORPG


1 Answers

If the problem you are having is you can authenticate but you cant keep the authentication cookie here is a cookie aware version of WebClient.

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: The link you gave me uses forms authentication with HTTP POST, I don't have the time to walk though it but at least it gives you a start with Google.

like image 102
Scott Chamberlain Avatar answered Oct 05 '22 19:10

Scott Chamberlain