首页 > 解决方案 > Angular 8 和 .Net 核心 API 中的并发会话

问题描述

我需要在浏览器 A 上显示弹出窗口(您在浏览器 B 上登录并在 5 秒内在浏览器 A 中注销)当用户尝试在浏览器 B 上登录时,他应该得到弹出窗口(您在浏览器 A 上登录并在浏览器中登录B in 5 sec ) 包含所有详细信息,例如 IP 地址

标签: .netangular.net-core

解决方案


您不能为此使用会话存储,因为两个浏览器将具有不同的会话。

但是,您可以将详细信息存储在数据库中。

登录时,存储此身份的有关 IP 地址、浏览器字符串等的详细信息。再加上“登录”日期和您保持更新的“最后一次看到”日期。还有一个(最初为空的)“注销”日期。

登录后,还可以通过检查任何以前存储的详细信息来检查该身份是否已被标记为“已登录”。您需要决定何时将某人“注销” - 例如,当该用户在过去 20 分钟内未出现时。请记住,并非每个人都明确退出。现在您可以显示该用户已在其他地方登录的消息。

对于每个请求,您都必须更新“最后一次看到”日期。您还需要检查“注销”日期。如果它有值,您可以显示消息,说明当前会话已被其他浏览器接管(当然,在此处注销)。


推荐阅读