便携.授权如何将授权绑定到PC上

本文关键字:授权 PC 绑定 便携 | 更新日期: 2023-09-27 17:52:39

我们有一个c#应用程序,需要保护它不被非法复制。所以我们决定使用Portable.Licensing库来保护我们的系统。

如何将许可证绑定到Portable.Licensing中的硬件id,以便只有特定的PC可以使用许可证?

便携.授权如何将授权绑定到PC上

您可以对PC的名称,硬件信息等生成唯一的哈希,并在创建许可证时将此哈希添加为Additional Attribute

license创建示例:

var license = License.New()  
    .WithUniqueIdentifier(Guid.NewGuid())  
    .As(LicenseType.Standard)    
    .WithMaximumUtilization(1)  
    .WithAdditionalAttributes(new Dictionary<string, string>  
                              {  
                                  {"HardwareId", "........"}  
                              })  
    .LicensedTo("John Doe", "john.doe@yourmail.here")  
    .CreateAndSignWithPrivateKey(privateKey, passPhrase);

要验证属性,您可以实现自己的验证扩展方法或仅使用现有的AssertThat()。例如:[1]

生成唯一的硬件id超出了便携式许可的范围。

[1] https://github.com/dnauck/Portable.Licensing/blob/develop/src/Portable.Licensing/Validation/LicenseValidationExtensions.cs L100

可以调用AsserThat方法:

license.Validate()
.AssertThat(lic => lic.ProductFeatures.Get("HardwareId") == "133456", new GeneralValidationFailure() { Message="Invalid Hardware.", HowToResolve="Contact administrator"});

使用ProtectedData。使用DataProtectionScope进行保护。LocalMachine加密许可证文件中的一些密钥值对。然后,只有当该值可以在同一台机器上成功解密时,许可证才有效。

ProtectedData。UnProtect只会在被加密的同一台机器上解密。这将需要在注册过程中实现桌面/客户端服务器交互。