C# 应用程序许可证组件和控件

标签 c# licensing software-distribution copy-protection

<分区>

如果我有 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、到期日期和属性字典是您可以在许可证文件中存储自定义键值对的地方。

它的工作方式是,你可以在许可证中嵌入机器的信息,在验证阶段你可以检查许可证是否属于同一台机器。这意味着您不能复制一台机器的许可证文件并将其放在另一台机器上,因为它不会起作用。

在许可证文件中,您可以存储以下信息:

  • 许可证的到期日
  • 为其生成许可证的人的姓名
  • 根据系统信息计算的哈希值

关于C# 应用程序许可证组件和控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6961090/

相关文章:

c# - 如何阻止 Facebook 应用程序请求任何权限?

c# - 对新 C# 开发人员有用的 Visual Studio 扩展?

php - 如何正确地 fork 一个开源库?

c# - 我可以使用 VS 2013 的 Express 版本开发商业桌面应用程序吗?

python - 与 distutils 共享库依赖项

c# - ASP.NET Core Web API - 执行 'LastOrDefault' 操作的查询必须具有确定性排序顺序

c# - 迭代平滑位置变化

android - 我可以在我的应用程序中使用开源 Spritz 克隆吗?

software-distribution - 谷歌代码的当前替代品

java - SWT:提供多平台下载包