Oui, vous aurez besoin d'un fichier clientaccesspolicy.xml dans la ROOT de votre domaine de service (webservices.mydomain.net). Par défaut, Silverlight prend en charge les appels aux services Web sur le même domaine ou le même site d'origine. Le même domaine signifie que les appels doivent utiliser le même sous-domaine, protocole et port. C'est pour des raisons de sécurité et empêche la falsification interdomaines.
Voici un exemple de fichier:
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://intranet.mydomain.net"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Cela permettrait à des demandes que de intranet.mydomain.net.
Modifier
Il a été demandé: Comment cela fonctionnerait si j'ai deux services WCF? /ServiceA/a.svc et /ServiceB/b.svc et je veux que ServiceA soit ouvert à n'importe qui, n'importe où, et que ServiceB fonctionne uniquement à partir de mon intranet?
Votre fichier de stratégie ressemblerait à ceci:
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://*"/>
</allow-from>
<grant-to>
<resource path="/ServiceA/" include-subpaths="true"/>
</grant-to>
</policy>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://intranet.mydomain.net"/>
</allow-from>
<grant-to>
<resource path="/ServiceB/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Comment cela fonctionnerait si j'ai deux services WCF? '/ ServiceA/a.svc' et'/ServiceB/b.svc' et je veux que ServiceA soit ouvert à n'importe qui, n'importe où, et que ServiceB fonctionne uniquement à partir de mon intranet? Est-ce possible à partir du fichier crossdomain? – Nate
J'ai modifié ma réponse. – DaveB
Cela fonctionnerait-il sur Safari? Il semble que Safari ne supporte pas les xml-s inter-domaines par défaut. Bien sûr, ça n'a pas d'importance ... – Gyuri