如何验证WebClient请求?

sma*_*irt 33 c# asp.net 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));
Run Code Online (Sandbox Code Playgroud)

Rya*_*ord 95

您需要为WebClient对象提供凭据.像这样......

 WebClient client = new WebClient();
 client.UseDefaultCredentials = true;
 client.Credentials = new NetworkCredential("username", "password");
Run Code Online (Sandbox Code Playgroud)

  • 这很有效.请注意,我没有必要将UseDefaultCredentials设置为true. (4认同)

Joh*_*ers 2

您使用哪种身份验证?如果是表单身份验证,那么最多您必须找到 .ASPXAUTH cookie 并将其传递到请求中WebClient

最坏的情况是,它不会起作用。

  • 然后你需要“WebClient”的行为就像浏览器的行为一样。您需要发送 cookie。 (2认同)