我在尝试使用PHP论坛上的C#代码验证用户时遇到了问题。 到目前为止我试过了:
webClient.Credentials = new NetworkCredential("Me", "MyPassword");
然后:
HtmlDocument webPage = new HtmlDocument();
webPage.Load(new MemoryStream(client.DownloadData(this.websiteUri)));
我也累了将Cookie信息添加到WebClient标题中。
此外我试过了:
using (WebClient client = new WebClient())
{
byte[] response = client.UploadValues(url, new NameValueCollection()
{
{ "usrname", "myLogin" },
{ "password", "p@ssw0rd" }
});
string result = System.Text.Encoding.UTF8.GetString(response);
}
我如何查看结果? 我做错了吗?有什么建议?
谢谢!
答案 0 :(得分:0)
这个PHP论坛可能正在使用某种基于表单的登录。要登录这种情况,您需要向正确的页面发送POST请求。要检查您必须向哪个页面发出请求,您应该检查论坛的HTML代码。
下面您将看到通过Chrome开发者工具检查的Simple Machines论坛的一些登录表单。
您可以在action
标签的form
属性中找到要拨打的地址。在POST请求中,您需要包含字段user
和password
。
正如您所看到的,表单还包含某种防伪标记,以使此请求更难以自动化。这很常见,因此您可能需要先进行一些HTML解析才能登录。