2009-01-09 86 views
1

我试图从雅虎管道读取一个饲料到Silverlight应用程序。我不断收到SecurityException,这听起来像是一个跨域策略问题,但是Yahoo管道,如果你经过pipes.yahooapis域,有一个跨域策略,所以应该没关系。我尝试了完全相同的代码,但转到Digg API,并且它工作正常(尽管这是休息而不是rss提要)。我的错误与跨域策略无关吗?Silverlight中的跨域安全错误?

我用下面的代码的Web请求:

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

的例外,我得到的是一个System.Security.SecurityException。

我想要的网址是这个

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

+0

邮政编码,例外情况等...? – 2009-01-09 15:25:16

回答

3

政策文件的地方是:

<!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> 

有是Silverlight不与整个Flash跨域策略文件格式,工作电流的问题..我期望站点控制元素正在打破它。

+0

这听起来似乎合理。谢谢! – Steve 2009-01-09 17:52:07

1

http://pipes.yahooapis.com/crossdomain.xml的crossdomain.xml策略文件仅指定allow-access-from元素中的安​​全(https :)请求。请参阅有关文件格式here

<?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> 
+0

我以不同的方式了解secure = true。查看一下Digg API,http://services.digg.com/crossdomain.xml。读这个没问题。 – Steve 2009-01-09 17:45:59