Astuce Silverlight : déployer une application Silverlight avec un service web - #S008

image image

Dans l’astuce #42 (en Anglais) du blog de Mike Snow, celui-ci décrit comment créer un service web WCF pour Silverlight. Dans cette astuce, nous allons voir les étapes nécessaires pour publier et déployer le service web avec votre application Silverlight sur votre serveur.

Pour des raisons de sécurité, afin que votre application Silverlight puisse discuter avec votre service web sur votre serveur, il va d’abord demander le fichier clientaccesspolicy.xml. Ceci permet d’éviter des attaques comme les faux sites croisés, ne se produisent. Si ce fichier n’est pas présent il vérifie ensuite le fichier crossdomain.xml d'Adobe par défaut. Si aucun de ces fichiers ne sont présents, vous obtiendrez une exception levée par Silverlight. Vous pouvez consulter l’astuce #S007 pour plus d’informations sur cette erreur et savoir comment la voir quand elle survient. Un de ces fichiers doit être présent dans le répertoire racine de votre site web (par exemple : c:\inetpub\wwwroot).

Les configurations suivantes pour ces fichiers autorisent l’accès depuis n’importe quel autre domaine vers toutes les resources du domaine courant. Vous pourrez les configurer selon vos besoins.

ClientAccessPolicy.xml –

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

CrossDomain.xml:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "https://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Pour plus d’informations sur la mise à disposition d’un service au-delà des limites de domaine, lisez :

https://msdn.microsoft.com/fr-fr/library/cc197955(VS.95).aspx

Syndication : Mike Snow’s Weblog
Traduction autorisée par Mike Snow.