我正在 WPF 中编写一个 Windows 桌面应用程序。我需要添加一个激活过程,想知道我是否有正确的想法
这是我正在考虑实施的过程。这会是最好的解决方案吗
- 当用户加载应用程序时,它会检查其中包含激活码的注册表项
需要激活
- 如果注册表中没有激活密钥,则会为他们提供激活页面
- 他们将在这里输入激活密钥,他们将从我们这里收到
- 当用户点击激活时,我得到他们的硬盘序列号并对其进行哈希处理
- 然后我连接到一个我写过的网络服务来检查——密钥是否存在——是否有分配给它的 HDD 串行哈希——它是否处于活动状态
- 如果它通过了所有这些标准,我会通过网络服务使用 HDD 序列更新我的数据库并将其标记为活动
已经激活(带有激活密钥的注册表项)
- 获取其硬盘的序列号并对其进行哈希处理
- 从注册表中检索密钥
- 连接到 Web 服务以检查密钥是否存在、是否仍然处于活动状态并分配给正确的 HDD 哈希
- 如果是我允许用户继续
- 如果没有,那么我会完全删除注册表项,并通知他们需要重新激活软件,然后加载激活页面。
除了想知道这是否是正确的方法之外,我还有一些额外的担忧:
需要保护网络服务用户在启动程序时需要能够访问互联网,以便我可以检查网络服务
任何人都可以提供的任何建议将不胜感激。我在那里找不到任何答案。