我使用默认的WebBrowser控件用C#编写了一个非常小的网站机器人。实际上,几乎所有的功能都按照预期工作,但我好像在自动化的最后一步遇到了问题。
该网站使用了多个iframe构建。这并不是什么大问题,因为我只需访问这些框架及其元素就可以了。
然而,当IFRAME的源被托管在与实际网站不同的域上时,这种方法就无法工作了。当我在互联网上搜索答案时,我偶然发现了一篇MSDN文章提到了这个特定的问题,并且他们提到了针对跨站点脚本攻击的安全措施可能是这个错误的原因。
我找不到禁用此功能的方法,所以我决定重新编写一切,以使其适用于geckofx-12而不是默认(基于IE的)Web浏览器控件,但我遇到了类似的问题... 我的问题是:有没有办法绕过这个烦人的行为? 我并不真的关心安全问题或者是否使用geckofx或默认的Web浏览器控件,我只想以编程方式访问托管在不同域上的站点的元素,而不会遇到UnauthorizedAccessException。
我很想从专家那里得到建议。
该网站使用了多个iframe构建。这并不是什么大问题,因为我只需访问这些框架及其元素就可以了。
webBrowser1.Document.Window.Frames[0].Document.GetElementById("element").InvokeMember("click");
然而,当IFRAME的源被托管在与实际网站不同的域上时,这种方法就无法工作了。当我在互联网上搜索答案时,我偶然发现了一篇MSDN文章提到了这个特定的问题,并且他们提到了针对跨站点脚本攻击的安全措施可能是这个错误的原因。
我找不到禁用此功能的方法,所以我决定重新编写一切,以使其适用于geckofx-12而不是默认(基于IE的)Web浏览器控件,但我遇到了类似的问题... 我的问题是:有没有办法绕过这个烦人的行为? 我并不真的关心安全问题或者是否使用geckofx或默认的Web浏览器控件,我只想以编程方式访问托管在不同域上的站点的元素,而不会遇到UnauthorizedAccessException。
我很想从专家那里得到建议。