¿Cómo autentico una solicitud de WebClient?

Estoy haciendo una llamada a una página en mi sitio usando webclient. Estoy tratando de obtener el resultado de la página web en un pdf, así que estoy tratando de obtener una representación en cadena de la página renderizada. El problema es que la solicitud no se autentica, por lo que lo único que obtengo es una pantalla de inicio de sesión. He enviado la propiedad UseDefaultCredentials a true pero todavía obtengo el mismo resultado. A continuación hay una parte de mi código:

 WebClient webClient = new WebClient();
 webClient.Encoding = Encoding.UTF8;

 webClient.UseDefaultCredentials = true;
 return Encoding.UTF8.GetString(webClient.UploadValues(link, "POST",form));

Respuestas a la pregunta(3)

Su respuesta a la pregunta