2009-08-05 9 views

Antwort

4

In vielen Fällen wird dies aufgrund des Sicherheitsmodells, das mit crossdomain.xml verknüpft ist, nicht funktionieren.

http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html

Sagen Sie zum Beispiel, habe ich eine Flex-Anwendung, die einen Service-Aufruf hat und anmelden, um meine Back-End-Datenbank (vielleicht PHP und MySQL). Sofern ich sie nicht explizit in der Richtliniendatei crossdomain.xml aktiviere, kann die App nicht mit meinem Server kommunizieren, es sei denn, die swf-Datei wird direkt von meiner Domain geladen. Wenn die App lokal wäre, würde sie auf meinem Server aussehen, wie localhost versuchte, über die Flex-App auf mein Backend zuzugreifen. Daher würde dies standardmäßig nicht funktionieren, wenn nicht eine explizite Regel in der crossdomain.xml gesetzt wurde, um den Zugriff von localhost zu erlauben. Ebenso kann jemand nicht einfach den swf auf einen anderen Server legen und versuchen, von meinem Server aus zuzugreifen, wenn ich diesen fernen Server der crossdomain.xml-Richtlinie hinzufüge.

Also zurück zu Ihrer Frage. Offensichtlich trifft dieses crossdomain.xml-Zeug nicht wirklich zu, wenn Ihre Flex-App wirklich einfach ist und nicht versucht, Serviceanrufe an einen Server zu senden. Zum Beispiel, wenn Sie ein einfaches Spiel haben, das einfach lädt und ohne zusätzliche Server-Aufrufe im Flex-Spiel spielt.

Wenn Sie Ihre App schützen möchten, können Sie während der Startreihenfolge einen einfachen "Telefon-Heim" -Prozess durchführen, der einen sehr einfachen Serveranruf auf Ihre Website ermöglicht. Es muss nicht alles sehr kompliziert sein, nur einen Round-Trip-Service-Anruf beim Start Ihrer App erfordern. Suchen Sie vielleicht nach einem einfachen Schlüssel oder einer Zeichenfolge, die in einer Variablen auf der PHP-Seite gespeichert sind, und lassen Sie die Flex-Anwendung nur laufen, wenn dieser Schlüssel gültig ist. Sie können den erwarteten Schlüssel im ActionScript fest codieren. Oder haben Sie vielleicht einen Basis-Logger, der verfolgt, wie oft die App gestartet wird und den Zählerstand in einer Datenbank oder etwas speichert. Die Hauptsache ist, dass die App nicht vollständig gestartet werden darf, bis diese Anfrage an den Server ein gültiges Ergebnis zurückgegeben hat.

Wenn Sie dies an Ort und Stelle haben, treten die crossdomain.xml Richtlinien ein und wenn jemand Ihr swf herunterlädt, sollte es nicht funktionieren, weil es versuchen wird, einen Anruf von localhost zu Ihrem Server zu machen. Oder wenn sie Ihre App stehlen und auf ihrer Website hosten, sollte es auch nicht funktionieren.

0

Überprüfen Sie flash.System.Capabilities.playerType auch auf LiveDocs.

2

Der einfachste Lösung il wahrscheinlich den Wert von

Application.application.loaderInfo.url 

beim Anwendungsstart (zum Beispiel im Fall application) zu überprüfen und es mit Ihrer Website-Domain entsprechen.

Verwandte Themen