Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#应用程序许可证组件和控件_C#_Licensing_Software Distribution_Copy Protection - Fatal编程技术网

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

C#应用程序许可证组件和控件,c#,licensing,software-distribution,copy-protection,C#,Licensing,Software Distribution,Copy Protection,如果我有5台目标计算机,我将把我的应用程序安装到其中一台目标计算机上。如何防止用户将我的应用程序复制到其他目标计算机 为了明确起见,我不希望他们在安装后复制我的应用程序(他们不应该从已安装的应用程序文件夹复制我的应用程序)。现在的问题是我使用Visual Studio 2010安装和部署来安装和部署我的应用程序,但是任何人都可以在安装后复制我的应用程序文件夹,例如,我的应用程序文件夹(exe、DLL和资源)位于“Program Files/MyApplication”。他们实际上可以将我的应用程

如果我有5台目标计算机,我将把我的应用程序安装到其中一台目标计算机上。如何防止用户将我的应用程序复制到其他目标计算机

为了明确起见,我不希望他们在安装后复制我的应用程序(他们不应该从已安装的应用程序文件夹复制我的应用程序)。现在的问题是我使用Visual Studio 2010安装和部署来安装和部署我的应用程序,但是任何人都可以在安装后复制我的应用程序文件夹,例如,我的应用程序文件夹(exe、DLL和资源)位于“Program Files/MyApplication”。他们实际上可以将我的应用程序从该文件夹复制并粘贴到其他计算机上,然后使用它。当然,他们可以复制,但我认为他们不应该使用我复制的应用程序,对吗?有没有办法保护他们复制我的应用程序?我必须写一个额外的代码

我真的是一个软件发行新手。请指导我该做什么。 谢谢

您可以使用它生成许可证文件。它具有LicenseGenerator类,该类具有Generate方法。下面是它的外观:

 public string Generate(string name, Guid id, DateTime expirationDate, IDictionary<string, string> attributes, LicenseType licenseType);
公共字符串生成(字符串名称、Guid id、DateTime expirationDate、IDictionary属性、LicenseType LicenseType);
Generate方法采用被许可方的名称。许可证的唯一id,可以生成为Guid.NewGuid()、过期日期和属性字典,您可以在许可证文件中存储自定义键值对

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

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

  • 许可证的有效期
  • 为其生成许可证的人员的姓名
  • 基于系统信息计算的哈希

我使用Inflution许可证跟踪器。它是payware,但允许许可部分或全部应用程序。它还允许在线验证中的密钥验证。可以使用客户信息生成密钥,因此可以使用目标计算机的信息进行注册


当你想要它时,你可以使用它。
带有试用选项的简单在线验证。

防止用户在多台机器上运行应用程序的行业标准方法实际上是将您的产品锁定到该系统的某些参数。但是,您需要考虑以下问题,以避免将来的工作或让客户感到不安。不处理这些问题的粗糙系统给节点锁定起了一个坏名声,但当正确完成时,节点锁定是不引人注目、灵活和安全的:

  • 如何准确获取要锁定的系统参数?要求用户读取/键入它们是常见的错误源,例如,错误读取“1”的“l”或“O”的“0”
  • MAC地址通常用于节点锁定,但这是一个糟糕的选择,因为管理员可以在许多操作系统下设置MAC地址
  • 假设您将许可证锁定到系统的多个参数。如果用户进行了小规模的系统升级,导致其中一个系统发生更改,会发生什么情况?如果你的应用突然拒绝运行,他们将不会高兴
  • 用户将希望在某个时候将其许可证移动到另一台计算机。您需要考虑如何在不造成安全漏洞的情况下支持它
  • 用户机器会崩溃——这是经常发生的。他们如何在新的/重建的系统上重新运行许可证

只是我们在解决方案中遇到和处理的一些问题。希望这有帮助。

您需要使用机器锁定/激活的许可证来防止这种情况。这确保了只能从一台计算机验证许可证-如果许可证验证失败,您可以决定采取什么步骤-是否退出应用程序、向用户显示消息、允许宽限期等

请尝试支持激活/机器锁定的许可证


免责声明:我为LogicNP Software工作,LogicNP Software是加密许可的开发者。

这意味着我必须为每次部署创建一个许可证以及我的应用程序?第一次您需要创建一个许可证。在这方面,您需要设置到期日期和系统信息。如果更改或修改了任何值,那么在这种情况下,您必须再次为应用程序生成新的许可证。