我正在使用 C# 开发客户端-服务器应用程序。基本上,服务器是 SQL 服务器,客户端是用 C# 开发的。我想知道的是在任何时候限制使用该应用程序的用户数量的最佳方法(如果有的话) - 比如说我希望限制为两个用户。我会限制他们对 SQLserver 的访问吗?
问问题
2441 次
3 回答
2
您可能需要“会话”的概念来识别并发用户数。
如果希望以故障安全的方式完成此操作,则必须在数据库服务器和客户端之间引入一个应用层。然后,您可以为用户提供登录和注销的方法。
每次登录时,您都需要增加“并发用户”的计数,每次注销时,您都需要减少。
您可能需要引入会话超时的概念,因为某些客户端可能会在不调用 logff 方法的情况下关闭。
允许的并发用户数可以与许可证相关联。
于 2012-12-21T12:59:35.030 回答
1
使用“currentUser”表存储当前同时登录系统的用户。
当用户登录时,检查最大行数。行数已达到。
当用户离开系统时删除相应的行。这样,您也可以限制使用相同的用户 ID 从不同的计算机登录。
于 2013-02-21T18:56:58.977 回答
0
您可以简单地出售个人许可证。
以在受信任的服务器(可能是 SQL Server)上检查其许可证的方式创建应用程序。
向每台计算机/用户出售许可证。
这样,如果需要,您可以轻松扩展到 2 个以上的用户。
也可以实施浮动许可:每次用户尝试获得许可时,它只会在可用时给出。当然,在断开连接或超时后必须“释放”许可证。在这种情况下,您需要一个包含许多许可证的服务器和一个分发它们的可信服务。
在 Winforms 应用程序中,您只需在启动时检查许可证,并且您可以在每次用户执行重要操作(例如查询数据库或单击菜单项)时延长超时
于 2012-12-21T12:59:03.873 回答