Pregunta

Estoy tratando de leer un feed de Yahoo Pipes en una aplicación Silverlight. Sigo recibiendo una SecurityException, que suena como un problema de política de dominio cruzado, pero las tuberías de Yahoo, si pasas por el dominio pipes.yahooapis, tienen una política de dominio cruzado, por lo que debería estar bien. Intenté exactamente el mismo código, pero yendo a la API de Digg, y funciona bien (aunque esto es descansar en lugar de un feed rss). ¿Podría mi error no tener nada que ver con las políticas de Cross Domain?

Utilizo el siguiente código para la solicitud web:

 WebClient wc = new WebClient();    
 wc.DownloadStringAsyncCompleted += new DownloadStringCompletedEventHandler(wc_DlStrCompleted);    
 wc.DownloadStringAsync(new Uri(yahooPipesUrl));

La excepción que obtengo es System.Security.SecurityException.

La url que estoy intentando es esta

: //pipes.yahooapis.com/pipes/pipe.run? _id = 4rBri9Ef3RG8CEGLLe2fWQ & amp; _render = rss & amp; feedUrl = http: //feeds.feedburner.com/follesoe

¿Fue útil?

Solución

El archivo de política vigente es:

<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
  <site-control permitted-cross-domain-policies="master-only" /> 
  <allow-access-from domain="*" /> 
</cross-domain-policy>

Hay un problema actual de que Silverlight no funciona con todo el formato de archivo Flash Cross Domain Policy ... Esperaría que el elemento de control del sitio lo esté rompiendo.

Otros consejos

El archivo de política crossdomain.xml en http://pipes.yahooapis.com/crossdomain.xml especifica solo solicitudes seguras (https :) en el elemento allow-access-from. Consulte la documentación sobre el formato aquí :

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only" />
  <allow-access-from domain="*" secure="true" />
</cross-domain-policy>

No hay un archivo de política de acceso de cliente en http://pipes.yahoo.com/crossdomain.xml o http://pipes.yahoo.com/clientaccesspolicy.xml

Por lo tanto, SecurityException es el comportamiento correcto.

¿Cuál es la URL exacta a la que está intentando acceder?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top