便携.授权如何将授权绑定到PC上
本文关键字:授权 PC 绑定 便携 | 更新日期: 2023-09-27 17:52:39
我们有一个c#应用程序,需要保护它不被非法复制。所以我们决定使用Portable.Licensing
库来保护我们的系统。
如何将许可证绑定到Portable.Licensing
中的硬件id,以便只有特定的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只会在被加密的同一台机器上解密。这将需要在注册过程中实现桌面/客户端服务器交互。