我们的 SSO 登录过程针对 SQL Server 中的自定义用户存储使用表单身份验证。
我们的新安全要求之一是一次只允许一个帐户有一个活动会话。因此,任何时候用户登录时,我们都会检查登录凭据是否已经处于活动状态,并且最好防止新用户再次登录,直到另一个会话结束。或者,如果这样更容易实施,我们可以强制结束另一个会话。
有没有一种简单的方法可以使用表单身份验证来做到这一点?我们考虑了一种自定义方法,我们跟踪数据库中的每个会话,但这将是很多工作,我们可能必须修改所有应用程序以检测 session_end,我希望避免这种情况。我认为 Forms Auth 中必须有一些东西可以处理这个问题。
我见过 MembershipUser.IsOnline() 方法,这看起来很理想,但我们没有使用 Membership 提供程序。
更新:为了清楚起见,我不需要检查当前用户是否登录,我需要知道其他人是否已经使用同一个帐户登录。