Frage

My Flash (AS3 / AIR) Anwendung verwendet derzeit eine etwas ungewöhnliche Architektur (für einen Flash-app) bestimmte Basisklassen für geladenen Inhalt zur Laufzeit zur Verfügung zu stellen. Der externe Inhalt wird mit ‚Stub‘ Basisklassen veröffentlicht, die von den ‚echten‘ Basisklassen zur Laufzeit verdunkelt werden, wenn es geladen wird. Ich habe gehört, spricht man von Adobe als Bootstrapping ( pdf ), und es ist für mich arbeitet sehr gut bis jetzt. Es ist nicht anders als bei einer DLL-Architektur glaube ich, obwohl ich nicht qualifiziert bin mit Sicherheit zu sagen.

Bisher war der externe Inhalt I Laden wurden aus dem gleichen SecurityDomain (gleiche Sandbox) geladen ist, die mir erlaubt, auf einfache Weise den Inhalt in einem Kind ApplicationDomain zu laden. Leider soweit ich das beurteilen kann, ein ApplicationDomains die SecurityDomains nicht zusammenzuhängen umspannen -. Das heißt, ich kann nicht machen eine AppDom eines SecurityDom das Kind eines AppDom von einem anderen SecurityDom

Aber jetzt brauche ich von außerhalb meiner Anwendungssandbox diese fremden Inhalte zu laden. Es gibt viele Möglichkeiten zur Kommunikation zwischen SecurityDomains zu erreichen - obwohl die meisten von ihnen sehr begrenzt sind, AIR sandboxBridge API ist wahrscheinlich die stärkste. Leider erlaubt keine dieser Kommunikationsmethoden mir diese Bootstrap-Architektur zu erreichen.

Ich stelle fest, dass das LoaderContext Objekt eine securityDomain Eigenschaft hat, sondern Flash-Sicherheits verbietet ‚lokale SWFs‘ berühren sie (es eine SecurityError oder ähnliche wirft).

Flex SWFLoader hat eine trustContent Eigenschaft, die vielversprechend aussieht, aber ich bin geneigt anzunehmen, dass sie die gleichen Einschränkungen wie die Einstellung des SecurityDomain in der Loader der LoaderContext haben.

Ich vermute, ich werde neu gestalten müssen (was nicht einfach sein wird), aber ich dachte, dass ich gerade hier überprüfen würde, dass ich etwas in meiner Forschung verpasst haben.

So ... irgendwelche Ideen oder Perlen der Weisheit? Ich würde besonders freaking Liebe es, wenn jemand von Adobe, die auf dem Sicherheitsmodell funktioniert Gimme könnte eine endgültige „Ja / Nein kann / kann nicht getan werden“ ...

Vielen Dank im Voraus!

Nachtrag: Ich habe die Architektur seit beschlossen, neu zu gestalten, so dass die Bootstrapping alle auf der externen Domäne geschieht. Meine Frage steht noch, aber aus Neugier.

War es hilfreich?

Lösung 2

Zum Zeitpunkt des Schreibens, ich festgestellt, dass Sie nicht ein ApplicationDomain in Ihre eigene SecurityDomain laden, wenn es aus einer anderen Domäne ist, auch mit Luft.

Mit dem Design, denke ich.

Andere Tipps

Technisch gesehen wäre es nicht möglich sein, für Ihre AIR-Anwendung einfach auf die externen SWFs in Ihrem Anwendungsverzeichnis zu speichern und laden Sie sie von dort aus, so dass sie in der gleichen Sicherheits-Sandbox leben?

Allerdings gibt es einige wirklich offensichtliche Gründe, warum das Karma schlecht sein würde, so scheint es, wie notwendigerweise jede Lösung die Frage aufwirft, ob die lokalen Anwendung Inhalt zu setzen versuchen und Fern nicht vertrauenswürdige Inhalte in die gleiche Anwendungsdomäne ist der richtige Architektur-Ansatz ..?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top