Ошибка междоменной безопасности в Silverlight? - PullRequest
1 голос
/ 09 января 2009

Я пытаюсь прочитать канал из Yahoo Pipes в приложение Silverlight. Я получаю исключение SecurityException, которое звучит как проблема междоменной политики, но каналы Yahoo, если вы переходите через домен pipe.yahooapis, имеют междоменную политику, поэтому должно быть в порядке. Я попробовал точно такой же код, но собираюсь в Digg API, и он работает нормально (хотя это отдых, а не RSS-канал). Может ли моя ошибка не иметь ничего общего с междоменными политиками?

Я использую следующий код для веб-запроса:

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

Исключение, которое я получаю, - исключение System.Security.SecurityException.

URL-адрес, который я пытаюсь сделать, это

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

Ответы [ 3 ]

3 голосов
/ 09 января 2009

Файл политики на месте:

<!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 Cross Domain Policy ... Я ожидаю, что элемент управления сайтом нарушает его.

1 голос
/ 09 января 2009

Файл политики crossdomain.xml со значением http://pipes.yahooapis.com/crossdomain.xml определяет только безопасные (https :) запросы в элементе allow-access-from. Смотрите документацию о формате здесь :

<?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 голосов
/ 09 января 2009

Нет файла политики клиентского доступа на http://pipes.yahoo.com/crossdomain.xml или http://pipes.yahoo.com/clientaccesspolicy.xml

Следовательно, SecurityException - правильное поведение.

Какой именно URL вы пытаетесь открыть?

...