使用C#.NET进行PHP论坛身份验证

时间:2015-02-06 22:12:41

标签: c# php .net authentication forum

我在尝试使用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);
            }

我如何查看结果? 我做错了吗?有什么建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

这个PHP论坛可能正在使用某种基于表单的登录。要登录这种情况,您需要向正确的页面发送POST请求。要检查您必须向哪个页面发出请求,您应该检查论坛的HTML代码。

下面您将看到通过Chrome开发者工具检查的Simple Machines论坛的一些登录表单。

Form

您可以在action标签的form属性中找到要拨打的地址。在POST请求中,您需要包含字段userpassword

正如您所看到的,表单还包含某种防伪标记,以使此请求更难以自动化。这很常见,因此您可能需要先进行一些HTML解析才能登录。