Tag: 浏览器

WebBrowser控件:禁用跨站点XSS过滤或其他在HTML上完全处理JS的方法

我正在尝试使用我的Web浏览器控件从特定页面获取检索日期,包括所有子页面内容。 问题是某些子页面位于一个单独的域上,因此当我尝试访问框架[通过document.windows.frames(i).document]时,我得到了一个权限设计错误。 现在我理解这种情况发生的原因,如http://msdn.microsoft.com/en-us/library/ms533028.aspx所述 。 但是,与浏览不希望javascript嗅探其历史记录/ cookie的网站的用户不同,我实际打开我的程序并运行应用程序。 即使我必须手动更改安全设置,还有任何工作要做吗? 我尝试将IE中的所有设置都设置为允许并且仍然出现相同的错误。 我将只在本地运行应用程序,没有人会在IE上浏览,所以我可以逐字地更改使其工作所需的任何东西(甚至安装旧的IE版本,可能允许它,但仍然可以处理JS处理)。 注意我使用Web浏览器的原因是我将访问的绝大部分数据都是JS生成的,所以我需要在JS处理/生成HTML后访问DOM。 因此,仅使用SOCKETS获取HTML实际上不是一种选择。 即使我有HTML,我仍然需要某种类型的引擎来处理所有基于javascript的DOM元素。 如果您知道替代方案,那也完全可以接受! 提前致谢!

“指定的强制转换无效”错误

我正在使用此代码来检查webBrowser1中的文本,尽管我收到错误“指定的强制转换无效”。 for string docText = webBrowser1.Document.Body.InnerText; 。 有什么想法吗? 可能是因为我正在从另一个线程访问webBrowser吗? 谢谢。 public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { string docText = webBrowser1.Document.Body.InnerText; if (docText == “Hello”) { MessageBox.Show(“Alerted!”); } } private void timer1_Tick(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); }

使用Webbrowser控件中的IInternetSecurityManager覆盖IE隐私设置

我需要在C#应用程序中为托管的WebBrowser控件创建自定义安全管理器。 托管的WebBrowser控件应独立于IE安全和隐私设置。 问题:如果IE隐私设置设置为“高”,则依赖于cookie的网站在托管的WebBrowser控件中无法正常运行(如果隐私设置设置为“中”,则网站可以正常工作)。 承载WebBrowser控件的winform为GetSecurityId,MapUrlToZone和ProcessUrlAction提供了以下实现。 ProcessUrlAction由嵌入式浏览器调用,用于URL操作,如ACTIVEX_RUN,SCRIPT_RUN; 但它没有被要求任何cookie相关的url操作。 有没有办法为webbrowser控件启用cookie? 或者下面的代码有什么问题吗? private void InitBrowserSecurityData() { securityID = new byte[MAX_SIZE_SECURITY_ID]; securityID[0] = (byte)’f’; securityID[1] = (byte)’i’; securityID[2] = (byte)’l’; securityID[3] = (byte)’e’; securityID[4] = (byte)’:’; securityID[5] = 0; securityID[6] = 3; securityID[7] = 0; securityID[8] = 0; securityID[9] = 0; } //GetSecurityId int IInternetSecurityManager.GetSecurityId(string pwszUrl, IntPtr pbSecurityId, ref uint […]

防止在浏览器刷新时重新提交webform,而不会丢失viewstate

重复: 当浏览器重新加载/返回时,如何防止数据库再次被写入? 如果用户请求从浏览器刷新,是否有一种优雅的方法可以阻止.aspx页面重新提交表单数据? 理想情况下不会丢失视图状态。 编辑:对我来说最优雅的解决方案是将相关控件包装在asp.net ajax UpdatePanel中。 大家好

下载多个文件的更快捷方式

我需要从SEC网站下载大约200万个文件。 每个文件都有一个唯一的URL,平均为10kB。 这是我目前的实施: List urls = new List(); // … initialize urls … WebBrowser browser = new WebBrowser(); foreach (string url in urls) { browser.Navigate(url); while (browser.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents(); StreamReader sr = new StreamReader(browser.DocumentStream); StreamWriter sw = new StreamWriter(), url.Substring(url.LastIndexOf(‘/’))); sw.Write(sr.ReadToEnd()); sr.Close(); sw.Close(); } 预计的时间大约是12天……有更快的方法吗? 编辑:顺便说一句,本地文件处理只占7%的时间 编辑:这是我最后的实现: void Main(void) { ServicePointManager.DefaultConnectionLimit = 10000; List […]

从Web浏览器控件打开证书信息

有谁知道如何根据WebBrowser控件中的SSL打开“证书信息”屏幕?

使.NET WebBrowser不与IE或其他实例共享cookie

由于C#中的WebBrowser与包括IE在内的所有其他WebBrowsers实例共享cookie,我希望WebBrowser拥有自己的cookie容器,该容器不共享之前在IE或其他实例中创建的任何cookie。 因此,例如,当我创建WebBrowser时,它不应该有任何cookie。 当我运行2个WebBrowsers实例时,它们拥有自己的cookie容器,并且不会彼此共享或冲突cookie。 我怎样才能做到这一点?

如何设置WebBrowser代理

我正在制作一个multithreading应用程序。 每个线程都有自己的WebBrowser控件。 我想知道如何为每个WebBrowser设置不同的代理。 每个实例支持代理的自定义WebBrowser对我来说也是一个很好的解决方案。

C#:从Windows桌面应用程序打开浏览器并POST到URL

我有一个小型的WPF应用程序(虽然我认为无论是wpf表单还是webform应用程序并不重要?)我想要启动一个新的浏览器窗口并POST到特定的URL。 我一直在搞乱: System.Diagnostics.Process.Start(“http://myurl.com”); 启动窗口,但我不认为我可以使用相同的过程实际发布到url…我也尝试过HttpWebRequest,但我希望用户能够在我发布到之后使用该应用程序这个url,不只是向他们展示结果……我能看到什么才能做到这样的事情?

如何禁用wpf webbrowser控件上的drop

如何禁用System.Windows.Controls.WebBrowser上的文件丢弃? 从文档中可以看出,默认情况下应禁用此行为,因为它是从UIElement.AllowDrop属性inheritance的。 但是dy默认我可以将文件拖放到WebBrowser控件上。 除此之外,我似乎无法禁用这种假设的非默认行为。 例如,如果我在XAML中将该属性的值显式设置为false ..和/或代码隐藏,即 webBrowser1.AllowDrop = false; 然后我仍然可以将文件拖放到控件上。 如何禁用此行为并消除其创建的安全风险?