【问题标题】:Remote Desktop Unique Guid远程桌面唯一指南
【发布时间】:2011-10-18 16:34:37
【问题描述】:

我正在编写一个特定于我们产品的许可申请。它不是非常详细和详尽,但它适用于我们的业务。

许可证将硬件(我在 .net 中获得的 3 件)与工作站 ID 绑定在一起,工作站 ID 在程序执行时作为选项传递。因此,工作站 id XXX 被授权在计算机 YYYYY 上运行。

我在其中看到的唯一漏洞是,当他们只被许可运行一次时,他们可以通过 RDP 多次运行应用程序。通常他们

我如何分配许可证以防止他们在获得较少许可的情况下多次从不同会话运行应用程序?

由于这是在对等 2 对等网络上运行的,大多数情况下,我不能依靠检查任务管理器来查看程序启动时正在运行的内容。

有人对我可以在 RDP 连接上跟踪什么以绑定许可证有任何建议吗?

谢谢!

【问题讨论】:

    标签: c# licensing guid remote-desktop


    【解决方案1】:

    如果我正确理解您的目标,您希望阻止他们更频繁地运行应用程序而不是获得许可......并且您写道,您已经解决了这个问题,除了应用程序在不同会话中在同一台机器上运行的情况......

    如果那么你只需要一种机制来防止在同一台机器上第二次启动应用程序(即使在不同的会话中)......你可以使用全局互斥锁来实现......请参阅http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx

    基本上,您创建一个以Global\ 作为名称前缀的命名互斥锁...如果该互斥锁已经存在,则应用程序已经在这台机器上运行(在相同或不同的会话中)...如果您只想防止它在您使用 Local\ 作为前缀的同一会话中再次运行...

    【讨论】:

    • +1 Global MutEx 将阻止应用程序的多个实例运行。请参阅此文档:msdn.microsoft.com/en-us/library/f55ddskf.aspx
    • 这是很好的信息,回答了我一半的问题,我应该将许可证与什么联系起来,这样当他们最初打开应用程序时,它可以验证会话是否被许可进入?
    • 我不确定我是否完全理解......您在问题中写道,您已经将许可证与某些硬件特定值联系起来......您可以将它们转换为字符串并将它们用作一部分例如,互斥体名称...如果我弄错了,请更详细地解释...
    • 我确实将它绑定到硬件,这适用于 peer2peer 计算机,但如果两个不同的用户(作为不同的用户)登录到一个 rdp 会话,硬件不会捕获它,因为他们都返回相同的硬件签名。 rdp 中的两个用户的硬件签名 + 工作站 ID 可能相同并允许他们进入。
    • 那么您需要提供更多详细信息...您的应用程序使用数据库吗?它访问任何服务器吗?它可以访问互联网吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 2018-08-16
    • 2019-04-24
    相关资源
    最近更新 更多