当用户下载setup.exe Windows 8 SmartScreen仍然提醒用户,尽管发布者是有效的.
现在,安装后. Windows 8 SmartSreen将提示另一条消息“Windows SmartScreen阻止无法识别的应用程序启动,运行此应用程序可能会导致您的PC受到威胁.”而发行商是Unkown发行商.
我也应该签约吗?为什么当我拥有有效的证书时SmartScreen仍然提示?
如何签署应用程序exe,而不是安装程序?
Should I sign the assembly too?
我怀疑这是问题. ClickOnce要求它的清单被签名(你没有选择),但是我不认为有必要签署程序集本身(如你所暗示的),但Windows 8有可能是这样的.
未签名的程序集可以被修改,任何引用程序集都将尽可能地加载和执行代码中的代码 – 没有问题,因此恶意实体可以替换一个或多个程序集在磁盘上并危及您的应用程序. ClickOnce允许具有低系统权限的用户执行他们不允许执行的任务,因为通过数字证书(隐含地)授予许可(用于签署在目标上预先存在的ClickOnce清单的证书)机器,或通过目标机器上的根证书进行信任).因此,通过不签署程序集,安全链中存在一个薄弱环节,Windows 8(默认情况下)可能已经收紧了.
签约大会见:How to: Sign an Assembly (Visual Studio)
NB. dotNet程序集签名通常被称为强命名(术语“签名”和“强命名”似乎在这种情况下可以互换使用).
NB.一个强大的命名程序集只能引用其他强大的命名程序集,尽管它们可以使用不同的证书进行签名.这可能会导致一个问题,如果您有引用第三方程序集不强名称 – 这是罕见的,因为它是不良做法发布未签名的代码,一个选项,只需使用自己的认证使用sn.exe签署程序集