【发布时间】:2020-07-15 18:24:05
【问题描述】:
我们有一个使用 asp.net core、.net core 3.1、angular 构建的 web 应用程序,它使用 asp.net core 身份进行用户身份验证管理。 我们需要实现以下场景:
"如果用户 A 已登录(这是一个打开的会话)并且用户 B 使用相同的凭据登录(这是第二个并发会话),则用户 B 通过 MFA 后,我们将向该电子邮件地址发送一封电子邮件通知他们其他人刚刚登录。我们不会结束用户 A 的会话。”
我们当前的实现使用 ASP.Net 身份验证用户身份,身份验证票存储在 cookie 中。由于身份验证票证存储在 cookie 中,因此会话是基于浏览器的,因此无法通过此实现跟踪用户是否使用正在进行的打开会话登录。
我倾向于使用自定义存储通过数据库/redis 在服务器端存储身份验证票证,然后跟踪令牌过期,从而确定现有的正在进行的会话。我是在沿着正确的方向思考,还是有其他机制?我想要一些想法和建议。
【问题讨论】:
标签: c# asp.net asp.net-core .net-core asp.net-identity