1

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

我将以下代码用于 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

4

3 回答 3

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 跨域策略文件格式...我预计站点控制元素会破坏它。

于 2009-01-09T17:51:03.280 回答
1

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

<?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>
于 2009-01-09T17:41:17.420 回答
0

http://pipes.yahoo.com/crossdomain.xmlhttp://pipes.yahoo.com/clientaccesspolicy.xml中没有客户端访问策略文件

因此 SecurityException 是正确的行为。

您尝试访问的确切 URL 是什么?

于 2009-01-09T16:14:47.373 回答