在浏览器标签/窗口退出

时间:2016-04-05 17:56:08

标签: c# asp.net session cookies browser

我正在开发一个asp.net项目(前一段时间写过),用户说他们希望能够在标签或浏览器上注销“x'ing”。

我一直在寻找这个网站,并尝试了一些没有运气的事情。有不同的浏览器似乎没有一个简单的方法。

首先,这是一个从logout button调用的注销函数。

public void LoginStatus1_LoggingOut(object sender, LoginCancelEventArgs e)
{
    Response.Cookies.Clear();
    Session.Clear();
    HttpContext.Current.User = null;

    FormsAuthentication.SignOut();
}

如果我能在关闭标签/浏览器时以某种方式调用它,那就太好了。

母版页中有这个javascript:

<script type="text/javascript">
    // Copyright 2006-2007 javascript-array.com

    var timeout = 500;
    var closetimer  = 0;
    var ddmenuitem  = 0;

    // open hidden layer
    function mopen(id)
    {   
        // cancel close timer
        mcancelclosetime();

        // close old layer
        if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

        // get new layer and show it
        ddmenuitem = document.getElementById(id);
        ddmenuitem.style.visibility = 'visible';

    }
    // close showed layer
    function mclose()
    {
        if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
    }

    // go close timer
    function mclosetime()
    {
        closetimer = window.setTimeout(mclose, timeout);
    }

    // cancel close timer
    function mcancelclosetime()
    {
        if(closetimer)
        {
            window.clearTimeout(closetimer);
            closetimer = null;
        }
    }

    // close layer when click-out
    document.onclick = mclose; 
</script>

然而,它似乎不起作用。我用timeout变量搞乱了,无论我退出标签/浏览器后等待多久,cookie / session都不会清除。我知道chrome有一个“继续你离开的地方”功能,其他浏览器有类似的我确定。不幸的是,所有用户都不使用相同的浏览器。

任何想法都会受到欢迎!

0 个答案:

没有答案