自动解除阻止从网站下载的可执行文件

我有一个网站(intranet),允许你下载一个用ASP.NET编写的可执行文件(当前是一个.Net控制台应用程序),并使用https。

然而,在许多机器上,我无法马上运行它下载后 – 我需要右键单击它,去Properties ,然后单击Unblock ,使得使用这个应用程序不舒服(用户将不得不下载此可执行文件并运行 – 每次它是一个新的,因为它是代码生成的)

有没有办法让这个可执行文件自动解除阻塞? 修改客户机不是一个选项,但我可以做任何事情与服务器。

从一开始,我认为这是不可能的,因为它是一种安全保护,但Chrome以某种方式做到这一点。 如果我安装了一台安装了IE的新电脑,请将Chrome键入到Bing并安装它 – 我不必解除阻止可执行文件。

到目前为止,我只在W10 Chrome和IE上testing过这个,但是我确定老版本Windows也有这个问题。

显示不受信任的可执行对话框的机制基于备用数据流。 当您从网络源下载某些东西时,元数据会被Windows或浏览器添加,因此您的文件/网络服务器无法影响此行为。 另一方面,Windows有一个规则集,它用来应用可以在Internet选项的TrustZone-Settings中找到的标志。

NTFS有一个整洁的小功能,允许一个文件有多个内容,也被称为备用数据流。 这是一个NTFS专用功能,所以您不会在其他分区类型上找到它。 这基本上允许你在你的文件中存储更多的数据,这些数据对于用户来说是不可见的,并且不能被标准的Windows用户轻易发现。 Windows使用这些备用数据流来标记文件的来源,特别是从互联网或Intranet下载时。 用于此数据的备用数据流称为“Zone.Identifier”,并将ID保存到文件从中复制的区域。 当你决定信任一个文件时,你基本上会告诉Windows删除那个数据流。

Windows使用不同区域的概念来分类这些文件。 Windows共有四个区域:Internet,Intranet,可信站点和受限站点。 您可以在“Trust区段”选项卡中更改“Internet选项”对话框中的设置和规则,

安全性备注:在更改公司信任区的设置之前,请考虑三次的安全风险。 因为这将允许执行来自那些经过验证的源的任何可执行文件,潜在地让位于可能已经被感染的PC或用户本身启动的可执行文件。

解决该问题的正确方法是使用可信和有效的代码签名证书对该可执行文件进行签名,该证书最好使用EV(扩展验证)。 Windows将在运行该文件时检查证书,并允许它在没有进一步操作的情况下运行,因为它使用可信的证书进行签名。