2009-01-09 82 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