如何在浏览器关闭MVC ASP .NET上结束会话或注销用户

时间:2013-11-06 05:40:56

标签: asp.net-mvc asp.net-mvc-4 session-cookies session-timeout

我设计了一个MVC表单,并希望在用户关闭浏览器时结束会话,如果重新打开浏览器,则必须再次登录!

我不知道是否必须结束会话或清除cookie,如果是,我应该怎么做。你能帮我找到答案......

谢谢!

3 个答案:

答案 0 :(得分:3)

如果您使用的是 In-Proc 会话模式,那么您可以在global.asax文件中获取Session Timeout Event。因此,如果您要创建Cookie和其他特定于用户的存根,则可以使用此事件清除这些内容。

在Global.asax.cs

    protected void Session_End(object sender, EventArgs e)
{
   //Clean-up Code
}

如果是 Out-Proc 模式,您将永远不会收到会话超时事件。

正如汤米所说,没有万无一失的方法可以确定某人是否关闭了浏览器,但是你可以通过Jquery来实现。您需要以特定的时间间隔ping您的服务器。因此,当您在特定持续时间后停止从客户端获取任何内容时,您可以执行清理操作(与会话超时相同)

答案 1 :(得分:3)

您可以使用:

function del_cookie(name) {
    document.cookie = name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
<body onload="SetCookie()" onunload="del_cookie()">

来源here

尝试自己修改

答案 2 :(得分:1)

你可以试试。 在浏览器关闭或页面onload事件上从javascript或删除cookie 在浏览器关闭事件(或页面卸载事件)上在服务器上进行调用并在服务器上进行CLear会话。