Control WebBrowser: deshabilite el filtrado XSS entre sitios u otra forma de procesar JS en su totalidad en HTML

Estoy tratando de usar el control de mi navegador web para obtener la fecha de recuperación de una página específica, incluido todo el contenido de la subpágina. El problema es que algunas de las subpáginas están en un dominio separado y, por lo tanto, recibo un error de permiso cuando bash acceder al marco [a través de document.windows.frames (i) .document].

Ahora entiendo la razón por la que esto sucede, como se describe en http://msdn.microsoft.com/en-us/library/ms533028.aspx . Sin embargo, a diferencia de un usuario que navega por un sitio que no quiere que javascript detecte su historial / cookies, estoy abriendo físicamente mi progtwig y ejecutando la aplicación para este propósito.

¿Hay alguna solución para hacer esto, incluso si tengo que cambiar manualmente la configuración de seguridad? Intenté convertir todas mis configuraciones en IE para permitir y aún el mismo error. Solo ejecutaré la aplicación localmente y nadie buscará en IE, así que literalmente puedo cambiar todo lo necesario para que esto funcione (incluso instalar una versión anterior de IE que lo permita pero que aún pueda manejar el procesamiento de JS).

Tenga en cuenta que la razón por la que estoy usando el navegador web es que la mayoría de los datos a los que accederé se generará mediante JS, por lo que debo acceder al DOM después de que JS haya procesado / generado el HTML. Debido a esto, simplemente usar SOCKETS para obtener el HTML no es realmente una opción. Incluso si tuviera el HTML, todavía necesito algún tipo de motor para procesar todos los elementos DOM basados ​​en JavaScript. Si conoces una alternativa a esto, ¡también es completamente aceptable!

¡Gracias por adelantado!

Puede crear un proxy en su servidor para obtener los datos y cargarlos desde su propio dominio en un div oculto y luego podrá usar JS para obtener los datos que necesita del HTML.

Puedes crear una página proxy dinámica como esta:

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Web; using System.Web.UI; public partial class TestPage : Page { private WebRequest _request; protected void Page_Load(object sender, EventArgs e) { string text; string url = Request["UrlToGet"]; _request = (HttpWebRequest) WebRequest.Create(url); using (WebResponse response = _request.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream())) { text = reader.ReadToEnd(); } } } } 

todo lo que necesita hacer es poner la url solicitada en su QueryString o en los datos de la publicación y obtendrá el contenido de la página dentro del texto de la cadena

Una aplicación de hipertexto puede ser una opción en situaciones como esta. Las aplicaciones HTA se ejecutan dentro de su ventana básica del navegador, pero con los permisos de un ejecutable. Consulte esta página para obtener más información acerca de las HTA. Tenga en cuenta que las HTA proporcionan seguridad para marcos que no son de aplicación e iframes.