Silverlight: Как игнорировать (отсутствие) crossdomain.xml с System.Net.WebClient? - PullRequest
2 голосов
/ 12 января 2009

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

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

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

Ответы [ 2 ]

2 голосов
/ 12 января 2009

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

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

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

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

Если вы профилируете запросы 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

...