Элемент управления WebBrowser C # - PullRequest
1 голос
/ 11 мая 2011

Привет Я использую элемент управления веб-браузера для входа на этот URL https://direct.gov.mb.ca/ppr/jsps/login/login.jsp После ввода правильного имени пользователя и пароля я буду перенаправлен, но на страницу, не являющуюся участником (я все еще не вошел в систему), я использовал fiddler и выполнил шаги в браузере и успешно вошел в систему, единственная разница, которую я видел в фидлере между моя программа и обычный браузер находятся в браузере, когда я набираю тот же URL, в заголовке будет 2 куки, что очень странно, я не знаю, откуда они берутся, но в моей программе, очевидно, нет куки в заголовке также, после входа в систему с обычным браузером в ответе 5 куки, но с моей программой только 2 куки

Я также хочу упомянуть, что в моем коде нет ничего плохого, потому что я успешно вошел на другие веб-сайты https и http, в этом сайте есть что-то уникальное, как мне решить эту проблему, прошло 3 дня и я не мог понять это

РЕДАКТИРОВАТЬ: код

HtmlDocument doc = webBrowser1.Document; 
HtmlElementCollection elemsName = doc.All.GetElementsByName("userName"); 
int count = elemsName.Count; 
HtmlElement elmName = elemsName[0]; 
elmName.SetAttribute("value", "XXXXX"); 
HtmlElementCollection elemsPass = doc.All.GetElementsByName("password"); 
HtmlElement elmPass = elemsPass[0]; 
elmPass.SetAttribute("value", "XXXXX"); 
HtmlElementCollection elemsSubmit = doc.All.GetElementsByName("loginAction");
HtmlElement elmSubmit = elemsSubmit[0]; 
elmSubmit.InvokeMember("click"); 

Но, как я уже сказал, код работает для других сайтов, таких как facebook.com

1 Ответ

0 голосов
/ 18 августа 2012
  1. Вы пытались очистить куки, прежде чем открыли страницу с помощью «обычного браузера»? Если да, то количество файлов cookie остается прежним?

  2. Являются ли пользовательские агенты одинаковыми в веб-браузере и обычном браузере? Если нет, вы можете попытаться установить их с помощью:

    [DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
    private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer,
    int dwBufferLength, int dwReserved);
    const int URLMON_OPTION_USERAGENT = 0x10000001;
    
    private const string UserAgent = "Your User Agent";
    
    UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgent, UserAgent.Length, 0);
    
  3. Проверяли ли вы POST Body (TextView) для https://direct.gov.mb.ca/ppr/actions/loginDispatcher? Они одинаковы?

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