Web 应用程序的最大用户数



在我的 Web 应用程序中,我需要限制访问我的 Web 应用程序的最大用户数。用户数在单独的属性文件中配置。我创建了一个 HttpSessionListener 接口来跟踪不同的用户,但面临的问题是,一个用户可以使用多个浏览器实例请求,即使同一用户使用不同的浏览器实例,用户数量也会增加 1。

一种可能性是使用会话 cookie - 如果新连接的用户没有会话 cookie,请给他们一个并增加计数器,否则不要增加计数器。

您无法知道同一用户是否使用不同的用户实例,也无法知道用户是否使用两台不同的计算机等。

您可以限制每个用户允许的最大打开会话数,但请注意,cookie 只是一个序列号,可以作为标头注入浏览器的另一个实例中。如果用户位于同一子网后面,您甚至无法用它的 IP 地址来区分这种情况。

我的意思是,无论什么到达客户端的领域,都绝不在你的控制之下。所以,我很确定,尽管你可能会增加一些障碍,但你永远无法控制它。

无论如何,这里有一些障碍:

  • 将登录限制为只能登录一次。
  • 会话 Cookie、域 Cookie、隐藏输入文本框。
  • 一个 Java 小程序,它执行一些奇怪的操作(例如获取子网后面的本地 IP 地址或其他信息,如果允许)。
  • 一个做一些奇怪事情的闪存程序。
  • 跟踪远程 IP 地址。
  • 前一个的组合。

将您的 Web 应用程序隐藏在用户登录表单后面,并根据登录用户的数量进行限制。

这不仅对你来说是一个真正的问题。

例如,惠普的"质量中心"就是这样工作的:他们计算当前活动登录的数量。如果达到同时登录的限制,则无法使用新登录名登录。

这很有效。

但是,如果您使用已全部连接的登录名,则可以使用该应用程序。因此,使用相同登录名的两个用户可以同时工作。

仍然是一个很好的解决方案,而且开发起来不太复杂。

这一定是我遇到过的最疯狂的问题,蛋糕上的浇头是

我创建了一个 HttpSessionListener 接口来跟踪不同的用户,但面临的问题是,一个用户可以使用多个浏览器实例请求,即使同一用户具有不同的浏览器实例,用户数量也会增加 1

认真地??谁甚至提出了要求。你需要解决的问题是疯狂的要求,说真的,不要仅仅因为BA感到困惑并且没有完成他们的工作而实施疯狂的事情。

最新更新