Problème avec le fichier de stratégie pour ActionScript 3 XMLSocket
-
25-09-2019 - |
Question
nous avons développé un serveur sur mesure dans .NET pour héberger certaines fonctions chat / messagerie instantanée de base pour notre site Web, et le client est écrit dans Flex (AS3) en utilisant XMLSocket.
Maintenant, nous avons 2 serveurs, l'un dédié à l'envoi de fichiers purement politiques, et une manipulation des fonctions IM / Chat.
Le problème est, nous pouvons voir le client de connexion, le fichier de stratégie est envoyée, mais Flash ignore le fichier de stratégie et demande une nouvelle fois de notre serveur de chat / messagerie instantanée.
Fichier politique:
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>
serveur Policy:
Server.LogMessage("Policy Server: Serving policy file.");
TcpListener listener = (TcpListener)ar.AsyncState;
Socket client = listener.EndAcceptSocket(ar);
NetworkStream ns = new NetworkStream(client);
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
sr.Read();
//Send policy
sw.Write(Server.EncodeString(Server.xmlPolicyFile.OuterXml) + "\0");
sw.Flush();
ns.Flush();
//Cleanup
sw.Close();
sr.Close();
ns.Close();
//Do it again!
tcl.BeginAcceptSocket(AcceptCallback, tcl);
La solution
Cross Stratégie de domaine ne fonctionne que pour le serveur sur son ... vous ne pouvez pas avoir un serveur qui sert la politique d'un autre serveur ... ce qui arrêterait un méchant créer une politique pour votre machine et de voler vos données.
Vous aurez besoin d'avoir la politique servi sur le bon serveur.
Autres conseils
Merci Gergor mais ce que je voulais dire est que nous avons ouvert un serveur dédié à l'envoi de fichiers de stratégie et un pour gérer les connexions réelles (à la fois sur la même machine).
Le problème était que vous avez besoin d'envoyer immédiatement le fichier de stratégie sans faire quoi que ce soit d'autre sur le serveur de politique.