Come posso autenticare una richiesta WebClient?

Sto facendo una chiamata a una pagina sul mio sito usando webclient. Sto cercando di ottenere il risultato della pagina web messa in un pdf, quindi sto cercando di ottenere una rappresentazione di stringa della pagina renderizzata. Il problema è che la richiesta non è autenticata, quindi tutto quello che ottengo è una schermata di accesso. Ho inviato la proprietà UseDefaultCredentials su true ma ottengo lo stesso risultato. Di seguito è una parte del mio codice:

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

Che tipo di autenticazione stai usando? Se si tratta dell’autenticazione basata su form, al massimo sarà necessario trovare il cookie .ASPXAUTH e passarlo nella richiesta WebClient .

Nel peggiore dei casi, non funzionerà.

È necessario fornire all’object WebClient le credenziali. Qualcosa come questo…

  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