我们使用签名的 XML 许可文件。这是一个简单的 XML 文件,显示用户购买的内容。
这样做的好处是它是未来的兼容。您可以轻松添加产品功能或产品线、到期日期和功能属性。
我们的商业网站很容易按需创建和打包许可证,只要确保您的私钥永远不会泄露。对我们来说,优点胜过缺点,而我们无法规避的最大问题就是简单地处理许可证文件。
这是一个示例 xml 文件
<?xml version="1.0" encoding="utf-8"?>
<ProductName>
<License>
<LicenseId>20025fb9-5349-46d4-a530-55b0295beaaa</LicenseId>
<CustomerName>Scott.Cate@Example.com</CustomerName>
<MajorVersion>2008</MajorVersion>
<Product>Friendly Display Name</Product>
<ProductType>Enterprise</ProductType>
<Features>
<!--Add features here-->
</Features>
<Expires>0001-01-01T00:00:00</Expires>
</License>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>u3{..........}U2jo=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>QFg1kI{...............}DwDIE=</SignatureValue>
</Signature>
</ProductName>
我们使用简单的 .NET 内置 API 来进行 XML 签名,并确认它已签名且有效。
我喜欢的事 ...
.. 这很容易阅读。(用于技术支持) .. 易于更换 .. 易于存储在文件系统中,或者在我们的例子中,在数据库中,便于访问和退出 UI。(我们有一个适当的更新/升级系统).. 升级很容易。我们有一项服务可以获取您的旧许可证,并在验证后根据已购买的内容提供升级定价。然后商务系统记录新旧许可证文件以供参考。
我不喜欢的东西...
..可以复制,容易被盗