0

私の Flash (AS3/AIR) アプリケーションは現在、(Flash アプリの) 少し変わったアーキテクチャを使用して、実行時に読み込まれたコンテンツに特定の基本クラスを提供しています。外部コンテンツは「スタブ」基本クラスで公開されますが、実行時に読み込まれると「実際の」基本クラスによって隠されます。Adobe ではこれをブートストラップ( pdf )と呼んでいると聞いたことがありますが、これまでのところ非常にうまく機能しています。確かなことを言う資格はありませんが、私が信じている DLL アーキテクチャと同じです。

これまでロードしていた外部コンテンツは、同じSecurityDomain(同じサンドボックス) 内からロードされていたため、 child 内のコンテンツを簡単にロードできましたApplicationDomain。残念ながら、私が知る限り、ApplicationDomains にまたがるSecurityDomains は関連付けることができません。つまり、ある SecurityDom の AppDom を別の SecurityDom の AppDom の子にすることはできません。

しかし、今度はこの外部コンテンツをアプリケーション サンドボックスの外からロードする必要があります。を介して通信を行う方法はたくさんありますがSecurityDomain、そのほとんどは非常に限定されていますが、AIR のsandboxBridgeAPI はおそらく最も強力です。残念ながら、これらの通信方法では、このブートストラップ アーキテクチャを実現することはできません。

LoaderContextオブジェクトにプロパティがあることに気付きましたsecurityDomainが、Flash セキュリティにより、「ローカル swfs」がオブジェクトに触れることが禁止されています (SecurityErrorまたは同様のものがスローされます)。

Flexには有望に見えるプロパティSWFLoaderがありますが、 で を設定するのtrustContentと同じ制限があると思いがちです。SecurityDomainLoaderLoaderContext

再設計する必要があると思いますが (これは簡単ではありません)、調査で何かを見逃していないことをここで確認したいと思います。

それで... アイデアや知恵の真珠はありますか?セキュリティモデルに取り組んでいるアドビの誰かが決定的な「はい/いいえ、できます/できません」と言ってくれたら、特にうれしいです...

前もって感謝します!

補遺:それ以来、ブートストラップがすべて外部ドメインで行われるように、アーキテクチャを再設計することにしました。しかし、私の質問はまだ好奇心から立っています。

4

2 に答える 2

1

これを書いている時点では、AIR を使用しても、別のドメインからの をApplicationDomain独自にロードすることはできないと判断しました。SecurityDomain

設計上、私は推測します。

于 2009-09-02T03:04:47.883 に答える
1

技術的に言えば、AIR アプリケーションで外部 SWF を単純にアプリケーション ディレクトリ内に保存し、そこからロードして同じセキュリティ サンドボックス内に置くことはできないでしょうか?

ただし、これが悪いカルマになる明確な理由がいくつかあるため、ローカル アプリケーション コンテンツとリモートの信頼されていないコンテンツを同じアプリ ドメインに配置しようとすることが、正しいアーキテクチャ アプローチであるかどうかという問題は、どのようなソリューションでも必然的に生じるように思われます..?

于 2008-10-23T05:57:49.033 に答える