我正在尝试将Yahoo Pipes中的Feed读入Silverlight应用程序。我一直得到一个SecurityException,这听起来像是一个跨域策略问题,但雅虎管道,如果你通过pipes.yahooapis域,有一个跨域策略,所以应该没问题。我尝试了完全相同的代码,但转到Digg API,它工作正常(虽然这是休息而不是rss feed)。我的错误可能与跨域策略无关吗?
我对Web请求使用以下代码:
WebClient wc = new WebClient();
wc.DownloadStringAsyncCompleted += new DownloadStringCompletedEventHandler(wc_DlStrCompleted);
wc.DownloadStringAsync(new Uri(yahooPipesUrl));
我得到的异常是System.Security.SecurityException。
我正在尝试的网址就是这个
答案 0 :(得分: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跨域策略文件格式......我希望网站控制元素能够破解它。
答案 1 :(得分: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>
答案 2 :(得分:0)
http://pipes.yahoo.com/crossdomain.xml处没有客户端访问策略文件 或http://pipes.yahoo.com/clientaccesspolicy.xml
因此SecurityException是正确的行为。
您尝试访问的确切网址是什么?