gpt4 book ai didi

c# - 在 ASP.NET 中每个用户只允许一个并发登录

转载 作者:可可西里 更新时间:2023-11-01 08:20:57 28 4
gpt4 key购买 nike

在 ASP.NET Web 应用程序中是否可以允许每个用户同时登录一次?

我正在开发一个 Web 应用程序,我想在其中确保该网站一次只允许每位用户登录一次。如何检查当前用户是否已经登录?

请建议我们可以处理此问题的正确登录方法。我认为我们应该使用 SQL Server session 状态来处理这个问题。你有什么建议?

我想到了一个解决方案。我们可以这样做:

  1. 当用户登录系统时,我们会在用户列中插入 session ID。 (我们将使用数据库 session ,以便我们可以轻松获取所有 session 相关数据,如 isexpired、expiredatetime 等)。

  2. 当同一个用户再次尝试登录时,我们将检查该 session ID 列并检查 session 是否已过期。如果 session 没有过期,那么我们将不允许用户登录。

  3. 每次用户注销时更新用户 session ID。

请建议这是否是正确的方法。

最佳答案

请引用:

When the same user ID is trying to log in on multiple devices, how do I kill the session on the other device?

开箱即用,.NET 不支持这一点。 .NET 允许并发登录,我相信您已经知道了。

我有同样的要求,并提出了一个非常巧妙的解决方案,在上面的链接中进行了演示。简而言之,我的要求是一次只能有一个用户登录。如果同一个用户 ID 试图在其他地方登录,那么它会通过检查不同 session ID 下的现有登录来终止第一次登录的 session (这使得用户 ID 可以从他们的多个实例登录)他们计算机上的 Web 浏览器 [相同的 session ID],这很常见,但不是来自不同的计算机 [不同的 session ID](例如,可能是由于有人窃取了他们的凭据)。通过修改代码,您可能会更改此行为 - 即阻止第二次登录尝试,而不是终止已经处于事件状态并正在使用的第一次登录。

当然,它可能无法 100% 满足您的需求,因此请随意修改它以满足您的需求。

关于c# - 在 ASP.NET 中每个用户只允许一个并发登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515716/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com