首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >IE10 -如何防止弹出“您当前的安全设置不允许下载此文件”弹出窗口?

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

Stack Overflow用户
提问于 2013-07-17 18:13:08
回答 1查看 4.4K关注 0票数 7

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-16 16:34:32

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

代码语言:javascript
代码运行次数:0
运行
复制
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:

代码语言:javascript
代码运行次数:0
运行
复制
<Window x:Class="WpfWbApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">

    <WebBrowser Name="WB"/>

</Window>
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17697023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档