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 smile_regular
image

Technorati Tags: