Webclientを使用してサイトのページを呼び出しています。 Webページの結果をPDFに入れようとしているので、レンダリングされたページの文字列表現を取得しようとしています。問題は、リクエストが認証されないため、ログイン画面しか表示されないことです。 UseDefaultCredentialsプロパティをtrueに送信しましたが、同じ結果が得られます。以下は私のコードの一部です:
WebClient webClient = new WebClient();
webClient.Encoding = Encoding.UTF8;
webClient.UseDefaultCredentials = true;
return Encoding.UTF8.GetString(webClient.UploadValues(link, "POST",form));
どのような認証を使用していますか?フォーム認証の場合、せいぜい.ASPXAUTH Cookieを見つけてWebClient
リクエストで渡す必要があります。
最悪の場合、機能しません。
WebClientオブジェクトに資格情報を与える必要があります。このようなもの...
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