2010-02-19 2 views
1

J'utilise Flex 3 (ActionScript 3.0). J'utilise le téléchargement progressif HTTP pour lire les fichiers son. Je veux sécuriser les fichiers son, en les servant seulement quand la demande vient de mon application flexible. J'ai choisi la solution la plus simple d'ajouter un en-tête HTTP à chaque demande envoyée depuis l'application. Mais l'objet flash.media.Sound ignore les en-têtes définis dans flash.net.URLRequest. Voici un exemple,flash.media.Son ne pas envoyer d'en-têtes de requête HTTP

URLRequest sndFile = new URLRequest("http://blah.com/media/load_sound.php"); 
sndFile.requestHeaders = new Array(new URLRequestHeader("req-orgin", "myflexapp")); 
Sound snd = new Sound(sndFile); 
snd.play(); 

La valeur de req-origine est nulle dans load_sound.php. Lorsque j'inspecte la demande à l'aide de Firebug, les en-têtes de demande à http://blah.com/media/load_sound.php ne contiennent pas l'en-tête.

Est-ce que quelqu'un sait pourquoi l'en-tête est ignoré? Existe-t-il un autre moyen d'identifier que la demande provient de mon application Flex?

Merci

Répondre

1

Le lecteur Flash est vraiment restreint le soutien d'en-tête pour des raisons de sécurité. Je crois que les en-têtes personnalisés ne prennent en charge que les requêtes POST. Il y a toutes sortes de restrictions.

Vous pouvez voir plus d'infos ici: http://kb2.adobe.com/cps/403/kb403030.html

Et ici: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLRequestHeader.html

Un fichier de stratégie inter-domaine doit résoudre tous les problèmes que, regardez ici:

http://kb2.adobe.com/cps/403/kb403184.html

Goodluck! (Vous pourriez en avoir besoin)

Questions connexes