我应该在何处以及如何保存许可证相关信息?
我有一个应用程序(C#),我的任务是在其中添加一些简单的许可方案。 在这样做时,我需要在计算机中的某处保存该信息以限制使用。
我需要保存日期和柜台。
我应该如何以及在哪里保存在Windows Vista上不需要管理权限才能运行的信息? (这意味着将它保存在System32中,程序文件,HKEY_LOCAL_MACHINE不是一个选项。)
请不要用“不要做”或“无论如何都会破解”来解决问题。 我确实理解那些逻辑。 我只需要为此目的做最好的事情。
考虑使用第三方许可组件,例如XHEO – 没有必要重新发明轮子。
如果仍需要编写自己的许可证系统,请考虑使用用户的配置文件目录或HKEY_CURRENT_USER
分支。
我们使用签名的XML许可证文件。 它是一个简单的XML文件,显示用户购买的内容。
关于这一点的好处是它未来的竞争。 您可以轻松添加产品function,产品系列,到期日期和function属性。
我们的商务网站可以轻松地按需创建和打包许可证,只需确保您的私钥永远不会泄露。 对我们来说,这里的优点是我们的缺点,也是我们无法避免的最大问题,就是简单地处理许可证文件。
这是一个示例xml文件
20025fb9-5349-46d4-a530-55b0295beaaa Scott.Cate@Example.com 2008 Friendly Display Name Enterprise 0001-01-01T00:00:00 u3{..........}U2jo= QFg1kI{...............}DwDIE=
我们使用简单的.NET内置API来进行XML签名,并确认它是有罪的和有效的。
我喜欢的事 …
..它很容易阅读。 (用于技术支持)..它易于更换..易于存储,在文件系统中,或在我们的情况下,数据库,以便于访问和进出UI。 (我们有一个到位的更新/升级系统)..它很容易升级。 我们提供的服务可以使用您的旧许可证,并在validation后根据已购买的内容提供升级价格。 然后,商务系统记录旧的和新的许可证文件以供参考。
我不喜欢的事情……
..可以复制,轻松窃取
对于企业,我们总是使用app_root / LICENSE目录。
我们还使用自己的自定义解决方案,但是加密此数据并validation许可证日志是否相当简单。
- 如何向IIS中的Web api应用程序授予写入权限?
- 使用Google Data API使用C#访问Google Spreadsheets会因Mono而失败
- 通用键/值对集合保留了插入顺序?
- 重写属性上的.net XmlSerializer
- 将WPF中的图像源绑定到URL
- 虽然在IDataReader.Read上不能使用yield return,但读取器上的foreach会有效
- 对SSPI的调用失败,请参阅内部exception – 无法联系本地安全机构
- IronPython脚本调试
- 为什么我的绑定DataGridView抛出“操作无效,因为它导致对SetCurrentCellAddressCore函数的可重入调用”错误?