浏览器上的.net核心cookie身份验证关闭

时间:2017-03-09 21:56:15

标签: asp.net cookies .net-core

我在.net核心mvc应用程序中使用cookie身份验证。我的一个要求是在浏览器关闭时注销用户。我在应用程序中将滑动到期时间设置为5分钟。正如预期的那样,如果用户在5分钟后回到网站,用户被重定向到登录页面,但如果用户在5分钟内回来,则用户自动登录。如果浏览器关闭,有没有办法注销用户?

1 个答案:

答案 0 :(得分:8)

没有直接的方法来检测浏览器是否已关闭,但您当然可以检查选项卡是否已关闭。您可以按照以下方式使用以下方式:

卸载事件

unload标记上收听<body>事件:

<html>
  <body onunload="tellServerBrowserClosed()">
  <!--...-->

警告: 即使您通过链接(在同一网站内)或浏览器后退按钮离开网站,也会触发。 (的 not a good solution

Ajax Beacon

只需定期( 20-60秒间隔)从浏览器(应该拥有用户的Cookie )发送针对API的Ajax GET请求。如果错过了2-3个信标( API调用),请清除该用户的数据。

警告: 您需要实施服务器端cronjob来处理过期的信标

的WebSockets

使用WebSocket连接(也许Socket.io )。这样,只要用户关闭选项卡,连接就会关闭,您可以使用此事件来清除其会话。 (为了提高准确性,您可能希望跟踪来自同一用户的多个套接字连接,以防他们使用超过1个标签