使用Portable.Licensing如何验证硬件ID属性

6

我正在进行某个项目。我只需要将产品许可证提供给一个计算机,所以我添加了一个附加属性硬件ID,如图所示。如何验证它。在这方面帮帮我。谢谢。

var license = Portable.Licensing.License.New()
                   .WithUniqueIdentifier(Guid.NewGuid())
                   .As(Portable.Licensing.LicenseType.Trial)
                   .ExpiresAt(DateTime.Now.AddDays(5))
                   .WithMaximumUtilization(Int32.Parse(User.Text))
                   .WithAdditionalAttributes(new Dictionary<String,String>{
                                               {"Hardware ID","12343"}
                                                })
                   .LicensedTo(name.Text, email.Text)
                   .CreateAndSignWithPrivateKey(privateKey, "212555555");

当应用程序获得许可证后,您是否会通过互联网将该密钥发送回其中一个数据库? - Simon Price
你想将这个密钥绑定到哪种硬件设备上? - Simon Price
是的,我正在将.lic文件发送到数据库。在这里,硬件是CPU ID和硬盘ID的组合。@Simon Price - Srikanth Mudale
为什么要使用硬盘ID?人们会因各种原因更换硬盘,但使用CPU ID是个好主意。你有获取CPU ID的代码吗?还是需要我提供? - Simon Price
我目前没有,但会进行搜索。但我的关注点是如何使用Portable.Licensing验证硬件ID。 - Srikanth Mudale
请查看此处解释的答案:https://dev59.com/Wl0a5IYBdhLWcg3wNWXA#30706365。 - Rahul
1个回答

5

好的,我找到了这个非常简单的答案。

  1. Using AssertThat() method provided by Portable.Licencing. ex:-

            var validationFailures = licenseContent.Validate()
            .ExpirationDate()
            .When(lic => lic.Type == Portable.Licensing.LicenseType.Trial)
            .And()
            .AssertThat(lic => lic.Quantity >= 3, failure1)
            .And()
            .AssertThat(lic => lic.ProductFeatures.Get("HardwareID") == "133456", failure1)
            .When(lic => lic.ProductFeatures.Contains("HardwareID"))
            .And()
            .Signature(publicKey)
            .AssertValidLicense().ToList();
    
  2. Write your own validation case.


是否有完整API使用文档?例如WhenAnd,GitHub的自述文件没有解释得很清楚。用户需要花费大量时间进行实验甚至检查代码。 - Lei Yang
我知道这是一个旧帖子,但我需要知道。failure1是什么? - GipsyD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接