1

我有一个托管在服务器上的 ASP.Net Web 应用程序。

我想限制同一用户通过网络连接登录不同的机器,但要满足某些条件。

所以我想在 User 表中添加三个新列,这样我们就可以跟踪同一用户是在同一台机器上登录还是在不同机器上登录。

这些列就像:

  • IsLoggedIn:检查特定用户是否已经登录。
  • SessionID:检查是否打开了相同的用户实例。
  • IPAddress:检查同一用户是否在同一台或不同的 PC 上。

这应该满足以下一些条件,但它不能满足其中一些条件。

条件如下:

  1. 两台计算机在同一个局域网上。
  2. 每台计算机都通过 Internet 从不同位置访问应用程序。
  3. 每台计算机都从同一位置通过 Internet 访问应用程序。
  4. 托管的某些应用程序意味着仅凭 IP 地址不足以区分不同的计算机。
  5. 有些用户只是关闭浏览器而不注销。因此会话可能不会在这种情况下结束。

任何人都可以建议如何完成所有这些条件来满足我的应用程序吗?主要是4号和5号。

提前致谢。

4

1 回答 1

0
  1. 您可以使用 cookie 来识别用户自己登录的机器。据我所知,通过硬件密钥识别计算机是行不通的,因为这将是一个安全问题。更多想法:如何在 ASP.NET 应用程序中唯一标识客户端计算机?

  2. 例如,您可以让用户在新机器上登录,然后关闭他现有的会话(如果有的话)。甚至会弹出一个问题,例如您要关闭所有其他会话吗?

于 2012-06-08T14:22:03.480 回答