我设计了一个MVC表单,并希望在用户关闭浏览器时结束会话,如果重新打开浏览器,则必须再次登录!
我不知道是否必须结束会话或清除cookie,如果是,我应该怎么做。你能帮我找到答案......
谢谢!
答案 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会话。