Web场中的并发登录

时间:2008-08-28 23:17:43

标签: asp.net authentication

我真的是通过代理问这个问题,另一个工作团队已经收到了我们客户的变更请求。

问题是我们的客户不希望他们的员工同时向一个用户登录多个用户。他们被锁定并共享登录。

由于这是在Web场上,解决此问题的最佳方法是什么?

不缓存到数据库会导致性能问题吗?

4 个答案:

答案 0 :(得分:7)

您可以查看使用分布式缓存系统,例如memcached

它可以很好地解决这个问题(它比数据库快得多),也非常适合缓存其他任何东西

答案 1 :(得分:6)

这只是开展业务的成本。

是的,缓存到数据库的速度比网络服务器上的缓存慢。但是你必须将这些状态信息存储在一个集中的位置,否则一个网络服务器就不会知道用户登录到另一个用户。

假设:您正在尝试阻止单个用户进行多个并发登录。

答案 2 :(得分:3)

登录和注销时的数据库操作不会导致性能问题。

  • 如果您使用的是高速缓存代理,则会导致出现问题:
  • 用户将注销,但在注销到达缓存之前无法重新登录

您最大的潜在问题可能是:

  • 如果app / box崩溃而用户无法注销,则用户在数据库中的状态将保持“登录”状态。

答案 3 :(得分:1)

这取决于身份验证的完成方式。如果您存储上次成功登录日期时间(无论后端如何),那么您可以更改架构以存储标记“logged_in”,并且不会产生额外的性能成本。 (好吧,它根本不干净)