Pergunta

Desenvolvemos um servidor personalizado no .NET para hospedar algumas funções básicas de bate -papo/IM para o nosso site, e o cliente está escrito no Flex (AS3) usando o XMLSocket.

Agora, temos 2 servidores, um dedicado a enviar arquivos de política puramente e um manuseio de funções de IM/Chat.

O problema é que podemos ver o cliente conectando, o arquivo de política é enviado, mas o Flash ignora o arquivo de política e o solicita novamente do nosso servidor de bate -papo/IM.

Arquivo de Política:

<?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>

Servidor de Políticas:

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);
Foi útil?

Solução

A política de domínio cruzado funciona apenas para o servidor está ativado ... Você não pode ter um servidor que serve a política para um servidor diferente ... o que impediria um vilão criar uma política para sua máquina e roubar seus dados.

Você precisará ter a política servida no servidor correto.

Outras dicas

Obrigado Gergor, mas o que eu quis dizer é que abrimos um servidor dedicado a enviar arquivos de política e outro para lidar com conexões reais (ambas na mesma máquina).

O problema era que você precisa enviar imediatamente o arquivo de política sem fazer mais nada no servidor de políticas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top