Подтвердить что ты не робот

Как аутентифицировать запрос WebClient?

Я делаю вызов страницы на моем сайте с помощью webclient. Я пытаюсь получить результат веб-страницы в PDF, поэтому я пытаюсь получить строковое представление отображаемой страницы. Проблема в том, что запрос не аутентифицирован, поэтому все, что я получаю, - это экран входа в систему. Я присвоил свойству UseDefaultCredentials значение true, но я все равно получаю тот же результат. Ниже приведена часть моего кода:

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

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

Ответ 1

Какую аутентификацию вы используете? Если он формирует аутентификацию, то в лучшем случае вам нужно будет найти файл cookie.ASPXAUTH и передать его в запросе WebClient.

В худшем случае это не сработает.

Ответ 2

Вам нужно предоставить объекту WebClient учетные данные. Что-то вроде этого...

 WebClient client = new WebClient();
 client.UseDefaultCredentials = true;
 client.Credentials = new NetworkCredential("username", "password");

Ответ 3

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