0

我有一个在 webbrowser 上加载显示登录表单的表单。当用户登录然后退出而不注销时,它会在下次启动时自动将他注销并再次向他显示登录表单。要从需要的站点 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;
        }
    }
}
4

2 回答 2

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());}}}})())");
于 2013-01-02T11:43:10.537 回答
0

您需要在 Form Close 事件或其他地方编写注销概念。因此,下次当用户打开该时间时,它将自动重定向到登录页面。并且需要在注销后刷新所有对象。

于 2013-01-02T11:01:37.387 回答