IE10 – 如何防止出现“您当前的安全设置不允许下载此文件”弹出窗口?

我正在使用wpf WebBrowser控件(System.Windows.Controls),我需要阻止用户执行各种操作,如下载文件或打印页面。 我在Internet Explorer选项中禁用了文件下载选项(安全选项卡 – >自定义级别 – >下载 – >文件下载)。 因此,在pdf链接上点击后,而不是文件下载弹出窗口,我得到一个弹出消息:“您当前的安全设置不允许下载此文件”。

有没有办法防止此消息发生? 我只是希望从用户角度不执行任何操作。 我用的是IE10。

WPF WebBrowser是一个围绕WebBrowser ActiveX控件的有限(但不可扩展, 密封 )包装器。 幸运的是,我们可以使用hack来获取底层ActiveX对象(请注意,这可能会在.NET的未来版本中发生变化)。 以下是阻止文件下载的方法:

using System.Reflection; using System.Windows; namespace WpfWbApp { // By Noseratio (http://stackoverflow.com/users/1768303/noseratio) public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.WB.Loaded += (s, e) => { // get the underlying WebBrowser ActiveX object; // this code depends on SHDocVw.dll COM interop assembly, // generate SHDocVw.dll: "tlbimp.exe ieframe.dll", // and add as a reference to the project var activeX = this.WB.GetType().InvokeMember("ActiveXInstance", BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic, null, this.WB, new object[] { }) as SHDocVw.WebBrowser; // now we can handle previously inaccessible WB events activeX.FileDownload += activeX_FileDownload; }; this.Loaded += (s, e) => { this.WB.Navigate("http://technet.microsoft.com/en-us/sysinternals/bb842062"); }; } void activeX_FileDownload(bool ActiveDocument, ref bool Cancel) { Cancel = true; } } } 

XAML: