Oggi ho avuto la necessità di consumare dei servizi da un applicazione Silverlight, questi non stanno sullo stesso sito di origine dell’applicazione e sono protetti da un file ClientAccessPolicy.xml che da accesso ai soli siti autorizzati.
Per una lunga serie di motivi, disabilitare temporaneamente il filtro in clientaccesspolicy.xml non è possibile, e quindi, come debuggo il codice se ogni chiamata ritorna una SecurityException?
La risposta sta in Fiddler che, tra la miriade di funzionalità ha anche quella di ridirigere le chiamate dirette a una uri verso un altra, è quindi bastato aggiungere al progetto web un file clientaccesspolicy.xml completamente “aperto” e impostare la porta del web server locale a un valore fisso (es: 777)
<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>
A questo punto basta lanciare
Fiddler e usare il comando:
urlreplace [original] [redirect] per rimappare la chiamata verso il file locale