【问题标题】:Limit number of users in c# application限制c#应用程序中的用户数
【发布时间】:2023-03-17 08:45:01
【问题描述】:

我正在使用 C# 开发客户端-服务器应用程序。基本上,服务器是 SQL 服务器,客户端是用 C# 开发的。我想知道的是在任何时候限制使用该应用程序的用户数量的最佳方法(如果有的话) - 比如说我希望限制为两个用户。我会限制他们对 SQLserver 的访问吗?

【问题讨论】:

  • 您这样做是为了解决许可问题吗?而且,您之间没有任何其他应用服务器吗?
  • 是的,先生,我这样做是为了获得许可,并且我想将我的应用程序的访问权限授予有限的客户。我之间没有任何其他应用服务器。我的 Sql Server 数据库在一台机器上(称为数据库服务器),我的应用程序代码在客户端机器上。我不知道如何让有限的客户访问。对不起我的英语。谢谢你的回复
  • “想将我的应用程序的访问权限授予有限的客户”您能否在您的问题中进一步解释这一点。这超出了许可的范围,通过简单的计数就可以更轻松地进行管理。

标签: c# winforms client-server


【解决方案1】:

您可能需要“会话”的概念来识别并发用户数。

如果希望以故障安全的方式完成此操作,则必须在数据库服务器和客户端之间引入一个应用层。然后,您可以为用户提供登录和注销的方法。

每次登录时,您都需要增加“并发用户”的计数,每次注销时,您都需要减少。

您可能需要引入会话超时的概念,因为某些客户端可能会在不调用 logff 方法的情况下关闭。

允许的并发用户数可以与许可证相关联。

【讨论】:

  • 请注意,通过这种计数,您应该只从每个客户端创建一个连接。这很容易使应用程序的构建变得非常困难。
【解决方案2】:

使用“currentUser”表存储当前同时登录系统的用户。

当用户登录时,检查最大行数。行数已达到。

当用户离开系统时删除相应的行。这样,您也可以限制使用相同的用户 ID 从不同的计算机登录。

【讨论】:

    【解决方案3】:

    您可以简单地出售个人许可证。

    以在受信任的服务器(可能是 SQL Server)上检查其许可证的方式创建应用程序。

    按计算机/用户出售许可证。

    如果需要,您可以轻松扩展到 2 个以上的用户。

    还可以实施浮动许可:每次用户尝试获取许可时,它只会在可用时提供。当然,在断开连接或超时后必须“释放”许可证。在这种情况下,您需要一个包含许多许可证的服务器和一个分发这些许可证的可信服务。

    在 Winforms 应用程序中,您只需在启动时检查许可证,并且您可以在用户每次执行重要操作(例如查询数据库或单击菜单项)时延长超时时间

    【讨论】:

      猜你喜欢
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      相关资源
      最近更新 更多