【问题标题】:Logoff when closing the browser ot leaving the website [duplicate]关闭浏览器或离开网站时注销[重复]
【发布时间】:2012-10-05 10:23:36
【问题描述】:

可能重复:
Is there any way to know that user leaving a page with asp.net?

离开我的网络应用程序时如何执行自动注销或关闭会话?

(如 GMAIL,当您不选中“记住我”时,如果您关闭浏览器或移动到其他页面,则会将您注销)。

谢谢,因巴尔。

【问题讨论】:

标签: c# asp.net session logout browser-close


【解决方案1】:

您可以使用 'onbeforeunload' 事件并使用 Session.Abandon 打开一个弹出窗口以终止会话

或者如果您使用表单身份验证,您可以选择在一定时间后使用超时终止会话

【讨论】:

  • "onbeforeload" 的问题在于,即使您离开 Web 应用程序内的页面,它也会调用,并且我希望仅在用户离开 Web 应用程序时才发生注销。
  • 即使您关闭窗口(当用户离开 Web 应用程序时)它也会触发,但是这里有一个混合响应,onbeforeunload 在所有浏览器中的行为方式不同
  • 是的,但是如果用户只是移动到另一个页面,我不想关闭会话...
【解决方案2】:
<script type="text/javascript">

        var clicked = false;
        function CheckBrowser() {
            if (clicked == false) {
                //Browser closed
            }
            else {
                //redirected
                clicked = false;
            }
        }

        function Logout() {
            if (clicked == false)//browser is closed
            {
                window.location = "../Master/Logoff.aspx";
            }
        }
    </script>
  1. 将此 JavaScript 放在母版页或内容页的 head 部分

  2. 在正文部分的onbeforeunload事件上调用注销方法,如

    &lt;body onbeforeunload="Logout()" onclick="clicked=true;"&gt;

  3. 从数据库中删除尊重的用户条目,并在被调用页面的 page_load 事件中终止会话,例如:

页面名称:Logoff.aspx

Protected void Page_Load(Object Sender,EventArgs e)
{
         //Write Delete User From Database Code Here.
}

Log out user on browser close粘贴​​p>

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 2017-01-05
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    相关资源
    最近更新 更多