我正在编写一个特定于我们产品的许可申请。它不是非常详细和详尽的,但它将适用于我们的业务。
许可证将硬件(我在。net中获得的3块)与工作站id绑定在一起,该工作站id在程序执行时作为选项传递。因此,工作站id XXX被授权在计算机YYYYY上运行。
我看到的唯一漏洞是,当他们只被授权运行一次时,他们可以通过RDP运行应用程序多次。通常他们
如何分配许可证,以防止他们在不同的会话中多次运行应用程序,而他们的许可证较少?
由于这是在对等网络上运行的,大多数时候,我不能依靠检查任务管理器来查看程序启动时正在运行的内容。
谁对我可以跟踪RDP连接以绑定许可证有任何建议?
谢谢!
如果我没理解错的话,你是想阻止他们比授权用户更频繁地运行应用程序…你写你已经解决了这个问题,除了应用程序在不同的会话中运行在同一台机器上的情况…
如果是这样,那么你只需要一个机制来防止在同一台机器上第二次启动应用程序(即使在不同的会话中)…您可以使用全局互斥来实现这一点…见http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx
基本上你创建一个命名互斥锁,Global
作为名称的前缀…如果互斥锁已经存在,那么应用程序已经在这台机器上运行(在相同或不同的会话中)…如果您只是想防止它在同一会话中运行第二次,您可以使用Local
作为前缀…