Pergunta

Eu estou tentando ler um feed do Yahoo Pipes em um aplicativo do Silverlight. Recebo um SecurityException, que soa como um problema de política de domínio cruzado, mas o Yahoo Pipes, se você passar pelo domínio pipes.yahooapis, tem uma política de domínio cruzado, de modo que deve ser ok. Eu tentei exatamente o mesmo código, mas indo para a API Digg, e ele funciona muito bem (embora este é descansar em vez de um feed rss). Poderia meu erro não tem nada a ver com as políticas de vários domínios?

Eu uso o seguinte código para o pedido Web:

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

A exceção que recebo é um System.Security.SecurityException.

O url que estou tentando é um presente

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

Foi útil?

Solução

O arquivo de política no lugar é:

<!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>

Há um problema atual que o Silverlight não funciona com todo o formato de arquivo do Flash Cruz política de domínio ... Eu esperaria que o elemento local-controle é quebrá-lo.

Outras dicas

O arquivo de política crossdomain.xml em http://pipes.yahooapis.com/crossdomain.xml especifica somente seguras (https :) pedidos no allow-access-from elemento. Consulte a documentação sobre o formato aqui :

<?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>

Não há arquivo de política de acesso de cliente em http://pipes.yahoo.com/crossdomain.xml ou http://pipes.yahoo.com/clientaccesspolicy.xml

Portanto, a SecurityException é o comportamento correto.

Qual é o URL exato que você está tentando acessar?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top