Pregunta

Recibo una excepción de seguridad cuando uso System.Net.WebClient para hacer solicitudes HTTP, debido a que crossdomain.xml o clientaccesspolicy.xml en el servidor de destino faltan o son demasiado restrictivos. Sé que hay una buena razón para esto (cookies y falsificación de solicitudes entre sitios), pero no se aplica en mi caso, ya que todo lo que necesito es hacer solicitudes HTTP GET simples a URL arbitrarias sin usar cookies ni nada elegante .

Ya pensé en una idea de un proxy que buscaría las URL, pero eso suena más como una solución fea, sin mencionar el desperdicio de ancho de banda.

¿Cuál es la forma (si hay una) de hacerlo en Silverlight? ¿Estoy usando la clase correcta?

¿Fue útil?

Solución

Creo que eso no es posible, al menos con WebClient. La idea es restringir (proteger ...) a los clientes de solicitudes no deseadas a otros servidores.

Para evitar eso, lo que puede hacer es tener un servicio web proxy que llame a las '' URL arbitrarias '' desde su servidor web y pase los resultados al cliente Silverlight. De esa manera, los clientes permanecen protegidos mientras logra la funcionalidad que desea.

Otros consejos

¿Por qué quieres deshacerte de él?

Si perfila solicitudes de Silverlight ... en un escenario entre dominios, siempre llaman al archivo clientaccesspolicy.xml. No puede cambiar este comportamiento (interno al tiempo de ejecución de Silverlight). Además, si no encuentra el archivo clientaccessolicy.xml, se llama Equivalente Flash / Flex (crossdomain.xml). Si ambos no existen o no permiten solicitudes de ese dominio, sus solicitudes simplemente fallarán.

Escribí un artículo sobre el uso de HttpHandlers para no tener que colocar esos archivos XML en su servidor web local y puede hacerlos dinámicos. El artículo se encuentra aquí:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top