0

ロード時にウェブブラウザにログインフォームを表示するフォームがあります。ユーザーがログインしてからログアウトせずに終了すると、次回の起動時に自動的にログアウトされ、ログインフォームが再度表示されます。サイト 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 に答える