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