У меня возникли проблемы при попытке аутентификации пользователя с использованием кода C# на форуме PHP. До сих пор я пытался:Проверка подлинности PHP-сервера с использованием C# .NET
webClient.Credentials = new NetworkCredential("Me", "MyPassword");
затем:
HtmlDocument webPage = new HtmlDocument();
webPage.Load(new MemoryStream(client.DownloadData(this.websiteUri)));
Я устал также добавлять печенье информации в заголовок WebClient.
Кроме того, я попытался:
using (WebClient client = new WebClient())
{
byte[] response = client.UploadValues(url, new NameValueCollection()
{
{ "usrname", "myLogin" },
{ "password", "[email protected]" }
});
string result = System.Text.Encoding.UTF8.GetString(response);
}
Как я могу проверить результаты? Я что-то неправильно делаю? Какие-либо предложения?
Спасибо!
ОК, я попробовал это. Следуя вашим предложениям, я не перенаправляюсь с login.php на главную страницу форума (URI ответа одинаковый). Я предполагаю, что это неправильно. Я должен быть перенаправлен, поэтому ответ URI должен быть следующим: «home.php». Кроме того - я вынужден использовать этот метод auth каждый раз, когда я проверяю URL? – Luke
Перенаправление может зависеть от метода, используемого сервером. Проверьте заголовки ответа, они могут содержать заголовок «Location: some-address.php». Это обычный способ перенаправления на другую страницу после запроса POST. Прежде всего: если вы хотите войти в систему, вам необходимо сохранить куки-файлы, которые должны содержать ваш php-сеанс. Здесь у вас есть несколько советов, как это сделать: http://www.codeproject.com/Articles/195443/WebClient-Class-with-Cookies http://stackoverflow.com/questions/1777221/using-cookiecontainer-with-webclient -класс –