2011-06-30 7 views
4

無料の基本バージョンとライセンスキーでロック解除されたより高度な有料バージョンを持つAIRアプリケーションを開発しています。理想的には、ライセンスキーが入力されると、コンピュータのすべてのユーザーのアプリケーションをロック解除したいと考えています。Adob​​e AIRシステム全体のストレージ

しかし、私はライセンスキーファイルを格納するのに適したシステム全体の場所を見つけることができませんでした。 Fileクラスの事前設定されたすべての場所(例:File.applicationStorageDirectory)は、ユーザー固有または読み取り専用のいずれかです。

AIRには、このようなものを格納できる標準的なシステム全体の場所がありますか?ファイルシステムではなく、共有オブジェクト、SQLite、または暗号化されたローカルストアであれば?それにもかかわらず、各システム(Windows、Mac、Linux)には、すべてのユーザーが書き込み可能であることが保証されているハード・コードがある標準的な場所がありますか?最後のオプションは、どの環境変数にもアクセスできないことによって、より困難になります。

他のすべてが失敗した場合は、アプリケーションをユーザーごとにロック解除する必要があると思うかもしれませんが、それは幸せな顧客のレシピのようには聞こえません(「妻のために2回購入する必要がある私たちは1台のコンピュータしか持っていません! ")。

(これはユーザーごとです。私はおそらく1つのキーでアプリのロックを解除して3〜4回はうまくいくようにしますが、ユーザーが複数回アクティブ化することはまだ不便です)。

答えて

1

ます。たとえば、システムが広く、書き込み可能かもしれないリテラルのパスを使用して、独自の場所を選択することができます。

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

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

使用可能なディレクトリをflash.fileSystem.Fileに(IE:File.desktopDirectory)は、これらのディレクトリは共通しているため、開発者にとって便利ですそれぞれのシステムで使い分けることができますが、使用することに限定されるものではありません。

しかし、これらのディレクトリをあなたのコードに知っていて、あなたのコードにハードコードする必要があります。これらのディレクトリはユーザのコンピュータに存在しないか、これらのディレクトリに書き込むための管理者権限が必要な場合があるので危険です。

アプリケーションのインストールごとに鍵をFile.applicationStorageDirectoryに保存することをお勧めしますが、購入したキーごとにユーザー限定のライセンスを含めることをお勧めします。

あなたの目標は、正直な顧客を正直にして、ハッカーの努力を邪魔しないようにすることができます。コードが公開されようとしているので、(あなたがSecureSWFようobfuscaterを使用していない限り)これはあなたのアプリケーションを販売するプロセスを簡素化したい場合Adobe InMarketもあります、

のActionScript 3.0/AIRと特にそうです。

好奇心から、あなたが精緻化しても構わないと思ったら、何をしていますか?