0

Web サイトの基本的なチャット/IM 機能をホストするように調整されたサーバーを .NET で開発しました。クライアントは、XMLSocket を使用して Flex (AS3) で記述されています。

現在、2 つのサーバーがあり、1 つはポリシー ファイルの送信専用で、もう 1 つは IM/チャット機能を処理します。

問題は、クライアントが接続していることを確認でき、ポリシー ファイルが送信されますが、Flash がポリシー ファイルを無視し、チャット/IM サーバーから再度要求することです。

ポリシー ファイル:

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

ポリシー サーバー:

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);
4

2 に答える 2

0

クロス ドメイン ポリシーは、そのサーバーに対してのみ機能します...別のサーバーにポリシーを提供するサーバーを持つことはできません...悪役があなたのマシンのポリシーを作成してデータを盗むのを止めるもの.

正しいサーバーからポリシーを提供する必要があります。

于 2010-09-28T13:48:11.530 に答える
0

Gergor に感謝しますが、私が言いたいのは、ポリシー ファイルの送信専用のサーバーと実際の接続を処理するサーバーを 1 つ (両方とも同じマシン上で) 開いたということです。

問題は、ポリシー サーバーで他に何もせずにポリシー ファイルをすぐに送信する必要があることでした。

于 2010-12-07T10:49:11.690 に答える