2013-01-02 135 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