2013-01-02 175 views
0

我有一個表單,在web瀏覽器上顯示登錄表單。當用戶登錄然後退出而不註銷時,它會在下次啓動時自動將其註銷,並再次向他顯示登錄表單。要從所需的站點2導航中註銷,但我不會看到那些導航,我希望瀏覽器在所有導航完成或類似之前都是白色的。如何隱藏瀏覽器導航?

bool f = true; 

private void Form1_Load(object sender, EventArgs e) 
{ 
    wbLoad.Navigate("http://login.uid.me/?site=dmysite&ref=http://mysite.ucoz.com/"); 
} 

private void wbLoad_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    if (f == true) 
    { 
     if (wbLoad.DocumentText.Contains("Sign up")) 
     { 
      wbLoad.Navigate("http://login.uid.me/?site=dmysite&ref=http://mysite.ucoz.com/"); 
      f = false; 
     } 
     else if (wbLoad.DocumentText.Contains("Log out")) 
     { 
      wbLoad.Navigate("http://mysite.ucoz.com/index/10"); 
      f = true; 
     } 
     else 
     { 
      wbLoad.Navigate("http://uid.me/logout/?mode=1&noajax=1"); 
      f = true; 
     } 
    } 
} 
+0

'要從站點2註銷導航......' - 此聲明不清楚。你能讓它更容易理解嗎? – Cdeez

+0

我從網站註銷,然後我必須從'uid.me'註銷,因爲註銷並沒有完全註銷你,它只是登錄你的網站,但然後當你點擊登錄它登錄你在沒有詢問用戶名或密碼,這就是爲什麼你也需要從'uid.me'註銷。 – a1204773

回答

2

註銷意味着在大多數情況下只是刪除當前主機的Cookie。如果是你的情況,你可以使用javascript來完成。請注意,這個JS只會刪除當前主機的cookie。您可以在FormClosing事件中調用它

wbLoad.Navigate("javascript:void((function(){var a,b,c,e,f;f=0;a=document.cookie.split('; ');for(e=0;e<a.length&&a[e];e++){f++;for(b='.'+location.host;b;b=b.replace(/^(?:%5C.|[^%5C.]+)/,'')){for(c=location.pathname;c;c=c.replace(/.$/,'')){document.cookie=(a[e]+'; domain='+b+'; path='+c+'; expires='+new Date((new Date()).getTime()-1e11).toGMTString());}}}})())"); 
0

您需要在窗體關閉事件或其他地方寫出註銷概念。所以下次用戶打開時,它會自動重定向到登錄頁面。註銷後需要刷新所有對象。

+0

網頁瀏覽器無法在窗體關閉事件上導航 – a1204773

+0

有些如何通過檢查LOGOUT窗體是否在Webbrowser中加載來限制窗體關閉事件。之後,您關閉表單。 – andy