2011-05-11 212 views
1

嗨 進出口使用WebBrowser控件登錄到這個網址https://direct.gov.mb.ca/ppr/jsps/login/login.jsp 輸入正確的用戶名&密碼,我將被重定向後但非會員頁面,(IM還沒有登錄),我用小提琴手,做瀏覽器中的步驟以及成功登錄後,我在我的程序和普通瀏覽器之間看到的唯一差異是在瀏覽器中,當我輸入相同的URL時,它會在頭部顯示2個Cookie,這非常奇怪,不知道它在哪裏得到這些餅乾,但與我的程序顯然沒有在標題中的cookie,也是在用普通瀏覽器登錄後有5個餅乾響應,但與我的程序只有2個餅乾WebBrowser控件C#

我也想提一下,我的代碼沒有問題,因爲我成功登錄到其他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

+0

當您從第一個請求(登錄)返回請求時,應該有一些cookie需要「附加」到每個請求中以被視爲登錄。 – Johan 2012-09-28 11:36:49

回答

0
  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(TextView中)爲https://direct.gov.mb.ca/ppr/actions/loginDispatcher?他們是一樣的嗎?