浏览器关闭时.net核心cookie认证

You*_*suf 2 asp.net cookies .net-core

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

AP.*_*AP. 8

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


卸载事件

unload<body>标签上收听活动:

<html>
  <body onunload="tellServerBrowserClosed()">
  <!--...-->
Run Code Online (Sandbox Code Playgroud)

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


阿贾克斯灯塔

只需定期(20-60秒间隔)GET从浏览器(应具有用户的cookie)的API 发送Ajax 请求.当错过2-3个信标(API调用)时,清除该用户的数据.

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


的WebSockets

使用WebSocket连接(可能是Socket.io).这样,只要用户关闭选项卡,连接就会关闭,您可以使用此事件来清除其会话.(为了增加准确性,您可能希望跟踪来自同一用户的多个套接字连接,以防它们使用多个选项卡)