2012-09-30 51 views
0

在IE或Chrome中使用開發者工具,我得到了一個框架的html代碼。沒問題。當使用WebBrowser獲取Html代碼IFrame時出現UnauthorizedAccessException

現在,我想要使用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; 

有什麼建議嗎?

回答

0

你沒有寫它,但我認爲iFrame包含不同域的內容。現代瀏覽器包括一些反XSS機制,就像這樣,爲攻擊者提供更多的工作。

在這種情況下,最簡單的方法是檢查iFrame內部顯示的內容,然後使用WebClient手動下載內部網頁。如果它是某種會員區域,則可能需要複製cookie。所以,只需獲取iframe的src屬性並使用WebClient.DownloadString來下載此頁面。

相關問題