【发布时间】:2017-09-07 21:24:14
【问题描述】:
我有一个网站(Intranet),允许您下载用 ASP.NET 编写并使用 https 的可执行文件(当前为 .Net 控制台应用程序)。
但是在很多机器上我不能在下载后马上运行它——我需要右键点击它,去Properties然后点击Unblock这让使用这个应用程序很不舒服(用户经常不得不下载这个可执行并运行 - 每次都是新的,因为它是代码生成的)
有没有办法让这个可执行文件自动解锁?修改客户端机器不是一种选择,但我可以对服务器做任何事情。
从一开始我就认为这是不可能的,因为它是一种安全保护,但 Chrome 以某种方式做到了这一点。如果我使用安装了 IE 的新 PC,在 Bing 中键入 Chrome 并安装它 - 我不必取消阻止可执行文件。
到目前为止,我仅在 W10 Chrome 和 IE 上对此进行了测试,但我很确定较旧的 Windows 版本也存在此问题。
【问题讨论】:
-
如果你先压缩它们会怎样?
-
@VDWWD 这会强制用户进行额外的操作 - 解压缩。有点像他们必须去
Properties-Unblock。同样从我在网上找到的信息来看,压缩文件仍然需要解封。我看到了更改扩展名并要求用户将其重命名回来的建议 - 但这比要求取消阻止更糟糕 -
如果 Chrome 下载的行为不同,这将是硬编码异常或基于信誉的决定。您无法从服务器端复制它。但我不会认为有必要明确取消阻止文件。如果双击它,是否会提示您是否要运行它?
-
@HarryJohnston 有可能,但我有疑问。 Microsoft 并不以支持竞争对手而闻名,我几乎不相信他们愿意帮助使用 IE 安装 Chrome(为此使用了多少 IE?:))但您可能仍然是对的。至于提示 - 这很奇怪,但您没有收到提示。当您运行可执行文件时 - 没有任何反应,除非您先取消阻止它。我如何在不解锁的情况下运行它的唯一方法是首先运行
cmd并从中运行控制台应用程序。这可能是我使用的测试机器的问题,我会尝试另一个 -
有理由假设 Chrome 可能是硬编码的例外,作为针对进一步反垄断诉讼的先发制人措施,但总的来说,我认为更有可能只是作为 Microsoft Smartscreen(或类似的基于声誉的技术)做它的事情。我想您可以尝试获取扩展的验证码签名证书,看看是否有什么不同。不过,这是一项昂贵的实验!
标签: asp.net windows web windows-security