J'appelle une page de mon site en utilisant webclient. J'essaie d'obtenir le résultat de la page Web dans un pdf, donc j'essaie d'obtenir une représentation sous forme de chaîne de la page rendue. Le problème est que la demande n'est pas authentifiée, tout ce que j'obtiens est un écran de connexion. J'ai envoyé la propriété UseDefaultCredentials à true mais j'obtiens toujours le même résultat. Voici une partie de mon code:
WebClient webClient = new WebClient();
webClient.Encoding = Encoding.UTF8;
webClient.UseDefaultCredentials = true;
return Encoding.UTF8.GetString(webClient.UploadValues(link, "POST",form));
Quel type d'authentification utilisez-vous? S'il s'agit de l'authentification par formulaire, au mieux, vous devrez trouver le cookie .ASPXAUTH et le transmettre dans la demande WebClient
.
Au pire, cela ne fonctionnera pas.
Vous devez donner à l'objet WebClient les informations d'identification. Quelque chose comme ça...
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