Adobe AIR系统范围的存储

时间:2011-06-30 06:06:23

标签: actionscript-3 licensing air storage

我正在开发一个AIR应用程序,该应用程序将具有免费的基本版本和更高级的付费版本,该版本已使用许可证密钥解锁。理想情况下,一旦输入许可证密钥,我希望它为计算机的所有用户解锁应用程序。

但是,我无法找到适合存储许可证密钥文件的系统范围的位置。 File类中的所有预配置位置(例如File.applicationStorageDirectory)都是用户特定的或只读的。

在AIR中是否存在标准的系统范围位置,我可以存储这样的内容?如果不是文件系统,可能是共享对象,SQLite,还是加密的本地存储?如果不这样,每个系统(Windows,Mac,Linux)上的标准位置是否可以保证所有用户都可以写入硬编码?由于缺乏对任何环境变量的访问,最后一个选项变得更加困难。

如果所有其他方法都失败了,我想我可以要求每个用户解锁应用程序,但这听起来不像是一个快乐的客户的食谱(“你的意思是我必须为我的妻子买两次使用它?我们只有一台电脑!“)。

(好的,是的,这是每个用户我可能会让一个键解锁应用程序3到4次就可以了解它,但用户激活多次仍然不太方便。)

1 个答案:

答案 0 :(得分:1)

您可以使用可以是系统范围和可写的文字路径来选择您自己的位置,例如:

//windows:
new File("C:\whatever ...");

//mac:
new File("/System/whatever ...");

flash.fileSystem.File中的可用目录(IE:File.desktopDirectory)对于开发人员来说是方便的,因为这些目录在每个系统上都是常用的而且不同,但您不限于使用它们。

但是,您将必须知道并将这些目录硬编码到您的代码中,这可能很危险,因为这些目录可能不存在于用户计算机上,或者他们可能需要管理权限才能写入这些目录等。

我建议您只需将密钥存储在应用程序的每次安装的File.applicationStorageDirectory中,但可能包含每个购买密钥的用户限制书面许可证。

如今,凭借许可密钥,您的目标只能是让诚实的客户诚实,而不是阻止黑客的努力。 ActionScript 3.0 / AIR尤其如此,因为代码将被暴露(除非您使用的是SecureSWF之类的混淆器)

如果您想简化销售应用程序的过程,还可以使用Adobe InMarket

出于好奇,你在做什么,如果你不介意详细说明。