10

我已经编写了一个应用程序,我想向它添加一个注册密钥/序列号(我很喜欢最小的不便 - 在这篇 Eric Sink 文章中的 ala #4 )。我的问题是关于应用程序注册后在哪里存储“激活”。据我了解,我在将密钥存储在所有用户都可以读取的公共场所(但需要管理员权限才能保存)和存储每个用户激活(但随后每个用户都在计算机将必须独立激活)。这给了我两个选择:

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

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

同样,我不是在问如何物理注册计算机 - 我并不担心。我只会对提供的密钥进行校验和并给予批准,因为我希望尽可能地非侵入性。

4

6 回答 6

7

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

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

于 2009-07-12T07:40:54.527 回答
1

注册表似乎是商业软件的一个不错的解决方案。至少在我以前工作的地方,普通用户不会是本地计算机管理员,所以每次安装都需要本地管理员帐户。这是一件好事,因为它将减轻您的支持人员的头痛,因为人们在您的业务计算环境中安装了几乎所有东西。权衡当然是,用户会因为他们无法安装东西或必须联系支持人员而生气,但是嘿...... :)

其他东西:

  • USB / 其他类型的加密狗(ala old 3DMax)
  • 纯旧文本文件(移动设备上的 ala Garmin GPS 软件)
  • 对它们进行编码/将密钥重写到您的二进制文件或二进制文件的一部分中(这个技巧在旧 DOS 时代有过吗)
  • 通过网络将它们存储在您自己的数据库中(ala EverQuest / 其他 MMORPG 游戏)
  • 本地密钥数据库(我认为是 ala MathLab)
于 2009-07-12T07:41:35.370 回答
1

为您的应用程序使用隔离存储怎么样?

您将能够在 mashiene 级别存储此信息以供您注册,并且配置更改可以在用户级别持久保存。

于 2009-09-21T15:15:24.357 回答
0

我们将激活码保存到当前用户(HKCU)的注册表中,我们几乎没有遇到任何问题。我们的客户在从家用计算机到协作网络上的瘦客户端的所有设备上运行。

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

于 2009-07-12T07:58:51.573 回答
0

通常,大多数计算机由单个用户(或多个仍在使用同一用户帐户的人)使用。因此,无论如何,基于用户的存储大部分时间都可以工作。

然而,它不是非此即彼。有一些文件夹位置可供所有用户写入 - 例如ProgramData文件夹。关键是让每个人都可以读取/写入文件,这样您就可以验证内容,而不管用户如何。

DeployLX Licensing对不安全的许可证数据执行此操作,以便多个用户可以在没有管理员明确授予权限的情况下使用它。

于 2012-03-07T21:01:26.210 回答
0

你应该保持一致。如果安装程序需要管理员权限,那么需要管理员权限来注册它并不过分。同样,如果您以某种方式设法在没有管理员权限的情况下安装它,那么也无需注册它。

如果您一步安装和注册,这将不是问题。

于 2012-03-07T21:17:50.890 回答