我应该在哪里存储我的应用程序的“激活”键?

我已经写了一个应用程序,我想给它添加一个注册码/序列号(我对这个Eric Sink文章的最小不便 – ala#4很大)。 我的问题是一旦注册了应用程序,应该在哪里存储“激活”。 据我所知,在将密钥存储在公共场所(所有用户都可以读取它(但需要pipe理员权限才能保存在那里)以及存储每个用户的激活(然后每个用户在电脑将不得不独立激活)。 这给了我两个select:

  1. 一些具有本地pipe理权限的用户激活产品。 激活存储在HKLM,程序文件文件夹或其他地方,所有用户都可以读取它,并为所有用户激活产品。
  2. 用户(具有或不具有pipe理权限)激活产品。 激活存储在以用户为中心的地方(每个用户的app.config,HKCU等)。 优点是用户不必是pipe理员。 缺点是,如果有6个用户使用电脑,每个用户都必须激活产品。 他们可以重复使用相同的序列,但他们仍然必须input。

这真的是交易吗? 如果是,其他人做了什么? 作为一名开发人员,我已经习惯了作为本地pipe理员的人,但在现实世界中,我不希望我的许多公司用户成为本地pipe理员,这使我倾向于select2.是不是经常共享计算机足够我不应该担心?

再次,我不问如何注册一台电脑 – 我并不担心。 我只是将校验和提供的密钥交给我,因为我希望尽可能无侵入性。

我会推荐一个不需要管理员权限的解决方案。 许多用户,特别是在共享环境中,不具有这些权利,不能方便地找到任何人。

而且,在未来几年,随着安全状况的改善,我认为在您使用的计算机上拥有管理权限会变得越来越不寻常。

注册表似乎是商业软件的一个好的解决方案。 至少在我曾经工作的地方,普通用户不会是本地计算机管理员,因此每次安装都需要本地管理员帐户。 这是一件好事,因为它将减少安装业务计算环境中的所有内容的人员对您的支持人员的头痛。 权衡是当然,用户会生气,他们不能安装的东西,或有联系支持做到这一点,但嘿… 🙂

其他东西:

  • USB /其他类型的加密狗(ala old 3DMax)
  • 普通的旧文本文件(移动设备上的ala Garmin GPS软件)
  • 对它们进行编码/将密钥重写到二进制文件或部分二进制文件中
  • 通过网络(无尽的任务/其他MMORPG游戏)将它们存储在你自己的数据库中
  • 本地密钥db(ala MathLab我认为)

如何使用孤立的存储你的应用程序?

您将有能力将这些信息存储在mashiene级别以供您注册,并且配置更改可以在用户级别上保存。

我们将我们的激活码保存到当前用户(HKCU)的注册表中,我们几乎没有遇到任何问题。 我们的客户可以运行从家用电脑到合作网络上的瘦客户机。

如果您的软件将在学校或其他教育环境中使用,则需要提供其他方法。 它可以像一个单独的注册应用程序一样简单,将保存到所有用户的激活。 你的软件将不得不做两个注册表查找,但这是一个小的代价。

一般来说,大部分电脑都是由一个用户使用(或多个人仍然使用相同的用户帐户)。 所以基于用户的存储将在大部分时间工作。

但是,它不是/或。 所有用户都可以写入文件夹位置,例如ProgramData文件夹。 关键是让每个人都可以读写这个文件,这样你就可以验证内容而不管用户。

DeployLX Licensing为非安全许可证数据执行此操作,以便多个用户可以使用它,而无需管理员明确授予权限。

你应该一致。 如果需要管理员权限来安装程序,则需要管理员权限才能注册。 同样,如果你以某种方式设法没有管理员权限的情况下进行安装,那就不用注册了。

如果你一步安装和注册,这不会是一个问题。