Silverlight: Как игнорировать (отсутствие) crossdomain.xml с System.Net.WebClient?

StackOverflow https://stackoverflow.com/questions/434962

Вопрос

Я получаю исключение безопасности при использовании System.Net.WebClient для выполнения HTTP-запросов, что связано с тем, что crossdomain.xml или clientaccesspolicy.xml на целевом сервере либо отсутствуют, либо слишком ограничены. Я знаю, что для этого есть веская причина (файлы cookie и подделка межсайтовых запросов), но в моем случае это не применимо, поскольку все, что мне нужно, - это выполнять простые HTTP GET-запросы к произвольным URL-адресам без использования файлов cookie или чего-либо необычного .

Я уже думал об идее прокси-сервера, который будет извлекать URL-адреса, но это больше похоже на уродливый обходной путь, не говоря уже о трате пропускной способности.

Как это можно сделать (если есть) в Silverlight? Я использую правильный класс?

Это было полезно?

Решение

Я думаю, что это на самом деле невозможно, по крайней мере с WebClient. Вся идея состоит в том, чтобы ограничить (защитить ...) клиентов от нежелательных запросов к другим серверам.

Чтобы обойти это, у вас есть прокси-веб-сервис, который будет вызывать «произвольные URL-адреса». со своего веб-сервера и передайте результаты обратно клиенту Silverlight. Таким образом клиенты будут защищены, пока вы достигнете желаемой функциональности.

Другие советы

Почему вы хотите избавиться от этого?

Если вы профилируете запросы Silverlight ... в междоменном сценарии они всегда вызывают файл clientaccesspolicy.xml. Вы не можете изменить это поведение (внутреннее для среды выполнения Silverlight). Кроме того, если он не находит файл clientaccessolicy.xml, он вызывает Flash / Flex equivelant (crossdomain.xml). Если оба не существуют или не разрешают запросы из этого домена, ваши запросы просто не будут выполнены.

Я написал статью об использовании HttpHandlers, чтобы не было необходимости размещать эти XML-файлы на локальном веб-сервере, и вы можете сделать их динамическими. Статья находится здесь:

http://silverlighthack.com/post/2008/11/08/Silverlight-clientaccesspolicyxml-files-for-the-Enterprise- (Part-1-of-2) .aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top