【问题标题】:Cross Domain security error in Silverlight?Silverlight 中的跨域安全错误?
【发布时间】:2010-09-30 12:25:59
【问题描述】:

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

我对网络请求使用以下代码:

 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

【问题讨论】:

  • 邮政编码、异常详情等...?

标签: silverlight cross-domain yahoo-pipes


【解决方案1】:

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

因此 SecurityException 是正确的行为。

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

【讨论】:

  • 试试 ttp://pipes.yahooapis.com/crossdomain.xml
【解决方案2】:

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>

【讨论】:

【解决方案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 跨域策略文件格式一起使用...我预计站点控制元素会破坏它。

【讨论】:

  • 这听起来很合理。谢谢!
猜你喜欢
  • 2016-11-04
  • 2010-10-25
  • 2012-12-19
  • 2014-01-02
  • 2010-12-16
  • 2010-11-23
  • 2011-08-27
  • 2011-11-03
  • 2011-03-27
相关资源
最近更新 更多