erro de segurança entre domínios no Silverlight?
-
06-07-2019 - |
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
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?