如果我有 5 台目标计算机,我将把我的应用程序安装到其中一台目标计算机上。如何防止用户将我的应用程序复制到其他目标计算机?
明确地说,我不希望他们在安装后复制我的应用程序(他们不应该从已安装的应用程序文件夹中复制我的应用程序)。现在的问题是我使用 Visual Studio 2010 安装和部署设置和部署我的应用程序,但是任何人都可以在安装后复制我的应用程序文件夹,例如,我的应用程序文件夹(exe、DLL 和资源)位于“Program Files/MyApplication” .他们实际上可以从该文件夹复制我的应用程序并将其粘贴到其他计算机然后使用它。当然,他们可以复制它,但我认为他们应该不能使用我复制的应用程序吧?有没有办法保护他们复制我的应用程序?我必须编写额外的代码吗?
我真的是软件分发的新手。请指导我我必须做什么。
谢谢
您可以使用 Rhino Licensing framework用于许可证文件生成。它具有 LicenseGenerator 类,该类具有 Generate 方法。这是它的样子:
public string Generate(string name, Guid id, DateTime expirationDate, IDictionary<string, string> attributes, LicenseType licenseType);
生成方法采用被许可人的名称。可以生成为 Guid.NewGuid() 的许可证的唯一 ID、到期日期和属性字典是您可以在许可证文件中存储自定义键值对的地方。
它的工作方式是,你可以在许可证中嵌入机器的信息,在验证阶段你可以检查许可证是否属于同一台机器。这意味着您不能复制一台机器的许可证文件并将其放在另一台机器上,因为它不会起作用。
在许可证文件中,您可以存储以下信息:
- 许可证的到期日
- 为其生成许可证的人的姓名
- 根据系统信息计算的哈希值