Ошибка входа при использовании HttpWebRequest - PullRequest
1 голос
/ 11 марта 2012

Любая помощь будет очень признательна.

Я пытаюсь программно войти на www.penson.com , используя мои учетные данные пользователя и пароль.

При этом с помощью проводника (в данном случае Chrome), ссылка для входа выглядит следующим образом: https://online.penson.com/(q3lsh145vubfki45dl1tr1yc)/Default.aspx?LoginInProgress=YES

После входа в систему с помощью этой ссылки, ссылка следующая: https://online.penson.com/(q3lsh145vubfki45dl1tr1yc)/Default.aspx?LI=Y

и оттуда я продолжаю работать с веб-сайтом ... Конечно, эта ссылка меняется каждый раз, когда я захожу на веб-сайт, содержащий различный вид "Guid".

Теперь, что яЯ делаю в моем коде следующее:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
    "https://online.penson.com/Default.aspx?LoginInProgress=YES");
request.Credentials = new NetworkCredential(myUser, myPassword);
request.CookieContainer = new CookieContainer();
request.AllowAutoRedirect = false;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = 0;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamResponse = response.GetResponseStream();
StreamReader sr = new StreamReader(streamResponse);
string result = sr.ReadToEnd();

строка 'result' выглядит следующим образом (структура HTML, которую я отредактировал для более простого отображения):

Объект перемещенto href = '/ (cls10ljriatq2luvwyzo4eyq) /Default.aspx?LoginInProgress=YES'

Из этой строки я извлек подстроку' href ', а затем попытался создать еще один запрос с этим полнымадрес:

https://online.penson.com/(cls10ljriatq2luvwyzo4eyq)/Default.aspx?LoginInProgress=YES

Это оne не работает, и анализ ответа потока указывает, что я все еще на веб-странице входа и фактически не перешел на следующую веб-страницу.

Я пытаюсь выяснить, что не такс кодом.Я думаю, что я думаю о том, чтобы получить «Guid» и разобрать его по адресу входа в систему, который не является точным.

Может кто-то указать мне на определенное решение?

1 Ответ

0 голосов
/ 11 марта 2012

Используйте Fiddler или Wireshark и сравните успешные запросы (сделанные с помощью некоторого браузера) и ошибочные запросы ... затем имитируйте успешные запросы в коде, удаляя / добавляя все необходимое очень часто Cookies являются одними из "виновников" в таких ситуациях - иногда это конкретный реферер или подобное ...

Помимо части кода: проверьте, запрещена ли автоматическая регистрация таким способом их условиями!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...