使用WebBrowser获取Html代码IFrame时出现UnauthorizedAccessException

时间:2012-09-30 08:02:05

标签: c# iframe browser unauthorizedaccessexcepti

在IE或Chrome中使用开发者工具,我获得了一个框架的HTML代码。没问题。

现在,我想用C#应用程序来做。我在VS2010中有System.Windows.Form.WebBrowser。我尝试获取Frame的Html代码。

 public static HtmlElementCollection GetElementsByTagNameForFrame(this WebBrowser wb, 
                                             string tag, string idFrame)
 {
      return wb.Document.Window.Frames[idFrame].Document.GetElementsByTagName(tag);
 }

但是我收到错误UnauthorizedAccessException。

我再次尝试Read HTML code from iframe using Webbrowser C#,但我得到同样的错误。

string content = doc.Window.Frames["injected-iframe"].WindowFrameElement.InnerText; 

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您没有写它,但我认为iFrame包含来自不同域的内容。现代浏览器包括一些反XSS机制,就像这样,为攻击者提供更多的工作。

在这种情况下,最简单的方法是检查iFrame中显示的内容,然后使用WebClient手动下载内部的网页。如果它是某种成员区域,您可能需要复制cookie。所以,只需获取iframe的src属性并使用WebClient.DownloadString下载此页面。