在 ASP.NET Web 应用程序中,是否可能允许每个用户仅有一个并发登录?
我正在开发一个Web应用程序,在这个应用程序中,我希望确保该网站每次只能允许一个用户登录。如何检查当前用户已经登录还是没有登录?
请建议适当的登录方法以解决此问题。我认为我们应该使用 SQL Server 会话状态来处理此问题。你有什么建议吗?
我想到了一种解决方案。我们可以像下面这样做:
当用户登录系统时,我们将会话ID插入到用户列中。(我们将使用数据库会话,以便我们可以轻松获取所有与会话相关的数据,例如isexpired、expiredatetime等)。
当同一用户尝试第二次登录时,我们将检查该会话ID列并检查该会话是否已过期。如果会话未过期,则不允许该用户登录。
每次用户注销时更新用户会话ID。
请建议这是否是正确的方式。
isLoggedIn
属性,当您进行身份验证时将其提高到1
,当注销时降低到0
,如果会话在此期间结束,则需要重置所有内容,Membership
使用LastLoginDate
,您可以对其进行一些调整。 - balexandre