¿Cómo inicio sesión en un sitio con WebClient?

Quiero descargar algo usando un objeto WebClient en C #, pero el dominio de descarga requiere que inicie sesión. ¿Cómo puedo iniciar sesión y mantener los datos de sesión usando WebClient? Sé cómo publicar datos con WebClient.

Si el problema que está teniendo es que puede autenticarse, pero no puede mantener la cookie de autenticación aquí hay una versión de WebClient que conoce las 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; } } 

EDITAR: El enlace que me diste utiliza la autenticación de formularios con HTTP POST, no tengo tiempo para recorrerlo, pero al menos te da un comienzo con Google.

Eche un vistazo al uso de la propiedad Credentials . Por ejemplo, si se utiliza la autenticación básica, deberá establecer la propiedad en una instancia de NetworkCredential con el nombre de usuario y la contraseña apropiados.

La muestra a la que se muestra muestra cómo usar las credenciales de usuario actualmente registradas para la solicitud.