web-dev-qa-db-fra.com

Comment authentifier une demande WebClient?

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));
32
smartdirt

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.

2
John Saunders

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");
94
Ryan Alford
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
1
Rouletabille