2011-06-30 68 views
4

我正在开发一款AIR应用程序,该应用程序将具有免费的基本版本以及使用许可证密钥解锁的更高级付费版本。理想情况下,一旦输入许可证密钥,我希望它为计算机的所有用户解锁应用程序。Adob​​e AIR全系统存储空间

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

在AIR中有标准的系统位置,我可以存储这样的东西吗?如果不是文件系统,可能是共享对象,或SQLite,或加密的本地存储?如果没有,那么每个系统(Windows,Mac,Linux)上的标准位置是否可以硬编码,确保所有用户均可写入?由于无法访问任何环境变量,最后一个选项变得更加困难。

如果一切都失败我想我可以只是要求应用程序解锁每个用户,但这听起来不像一个满意的客户的食谱(“你是什么意思我得为我的妻子买两次使用它?我们只有一台电脑!“)。 (好吧,是的,它是每个用户我可能会让一个密钥解锁应用程序3次或4次以使其更好),但用户多次激活仍然不太方便。

回答

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

出于好奇,你在做什么,如果你不介意阐述。