¿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 de cadena de la página representada. El problema es que la solicitud no está autenticada, así que todo lo que obtengo es una pantalla de inicio de sesión. He enviado la propiedad UseDefaultCredentials a true, pero sigo obteniendo el mismo resultado. A continuación se muestra 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)); 

¿Qué tipo de autenticación estás usando? Si se trata de autenticación de Formularios, en el mejor de los casos, deberá encontrar la cookie .ASPXAUTH y pasarla en la solicitud de WebClient .

En el peor, no funcionará.

Debe proporcionar las credenciales al objeto WebClient. Algo como esto…

  WebClient client = new WebClient(); client.UseDefaultCredentials = true; client.Credentials = new NetworkCredential("username", "password"); 
 Public Function getWeb(ByRef sURL As String) As String Dim myWebClient As New System.Net.WebClient() Try Dim myCredentialCache As New System.Net.CredentialCache() Dim myURI As New Uri(sURL) myCredentialCache.Add(myURI, "ntlm", System.Net.CredentialCache.DefaultNetworkCredentials) myWebClient.Encoding = System.Text.Encoding.UTF8 myWebClient.Credentials = myCredentialCache Return myWebClient.DownloadString(myURI) Catch ex As Exception Return "Exception " & ex.ToString() End Try End Function