当计算机在安装 WPF 应用程序时识别 trusted/unknown 发布者时,它是如何工作的?

How it works when computer recognize trusted/unknown publisher when install a WPF App?

我正在开发 WPF 应用程序,但在使用 clickonce 发布后无法将其设为受信任的应用程序。我看了很多 post 有类似问题,签署了 clickonce 清单,安装了证书,创建了测试证书,最后让我自己的计算机信任该应用程序。但是,当我在其他计算机上安装该应用程序时,这些计算机仍然不信任它。这是否意味着我应该要求每个使用我的应用程序的用户先安装相同的证书(.cer 文件)?但即使在安装证书并识别发布者名称后,某些计算机仍然会提示 "Windows protected your PC" 之类的安全警报。

所以我想知道,当计算机系统识别 trusted/unknown 发布者时,它是如何工作的?由于我的App不是商业产品,大部分时间都是离线运行的(我在Godaddy提供的CPanel上只有一个MySql数据库,用于存储用户登录信息和一些用户输入数据),所以除了购买有效证书,还有其他解决方法吗?如果有,有什么合适的方法吗?

任何人都可以解释一下或提供任何来源吗?提前致谢!

用于签署 ClickOnce 应用程序的证书必须在所有用户计算机上的 Trusted Publishers 证书存储中进行配置。

此外,证书必须从作为 Microsoft 受信任根证书计划成员的受信任机构购买:https://social.technet.microsoft.com/wiki/contents/articles/37425.microsoft-trusted-root-certificate-program-participants-as-of-march-9-2017.aspx

请参考以下link了解更多相关信息。

您提到了 "Windows protected your PC" 所以我们很可能在这里讨论 SmartScreen 问题。 RobinDotNet 在她的博文 Windows 8 and ClickOnce : the definitive answer and Windows 8 and ClickOnce : the definitive answer revisited.

中详细解释了 ClickOnce 和 Windows SmartScreen 的怪异之处
  1. 正如 mm8 在 中指出的那样,您需要来自有效证书颁发机构的证书。
  2. 除了签署清单之外,您还需要签署应用程序可执行文件。由于您有一个 WPF 应用程序,因此您必须执行此 AfterCompile(至少对于 VS2012 是这样)。
  3. 我最喜欢的部分:您需要通过选择 "Run anyway" 选项的人获得一些神奇的声望。对于我们的 ClickOnce 应用程序,SmartScreen 消息在几天后消失了。