我应该在哪里存储我的应用程序的"激活"密钥?

Sql*_*yan 10 windows activation registration

我已经写了一个应用程序,我想为它添加一个注册码/序列号(我在最小的不方便上很重要 - 这篇Eric Sink文章中的#4#).我的问题是,一旦申请注册,存储"激活"的位置.据我了解,我在将密钥存储在公共场所之间进行权衡,所有用户都可以将其读取(但需要管理员权限才能保存)并存储每个用户的激活(但是每个用户都在计算机必须独立激活).这给了我两个选择:

  1. 某些具有本地管理员权限的用户可以激活该产品.激活存储在HKLM,程序文件文件夹或所有用户都可以读取的其他位置,并为所有用户激活产品.
  2. 用户(具有或不具有管理员权限)激活产品.激活存储在以用户为中心的位置(每用户app.config,HKCU等).优点是用户不必是管理员.缺点是,如果有6个用户使用计算机,则每个用户都必须激活产品.他们每个都可以重复使用相同的序列,但他们仍然必须输入它.

这真的是权衡吗?如果是的话,其他人做了什么?作为开发人员,我习惯于成为本地管理员,但在现实世界中,我不希望我的许多企业用户成为本地管理员,这使我倾向于选项2.计算机是否经常不共享够了,我不应该担心?

再说一遍,我不是在询问如何实际注册计算机 - 我并不担心.我只打算将所提供的密钥与校验和进行校验,因为我希望尽可能无创.

Rik*_*ood 7

我建议不需要管理员权限的解决方案.许多用户,特别是在共享环境中,将不具备这些权利,并且无法方便地找到任何人.

此外,未来几年,我认为随着安全状况的改善,在您正在使用的计算机上拥有管理员权限将变得越来越不寻常.

  • 好吧,我们使用的一个解决方案是将激活信息放在当前用户注册表中,然后如果管理员权限可用,也将它放在本地计算机中.如果管理员权限可用,则计算机上的所有共享用户都不会受到攻击.如果没有可用的管理员权限,则要求每个用户激活一次. (5认同)