0

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

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

谁能解释一下或提供任何来源?提前致谢!

4

2 回答 2

2

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

此外,证书必须从 Microsoft 受信任的根证书计划成员的受信任机构购买:https ://social.technet.microsoft.com/wiki/contents/articles/37425.microsoft-trusted-root-certificate- 2017 年 3 月 9 日的计划参与者.aspx

有关这方面的更多信息,请参阅以下链接。

使用带有信任证书的 ClickOnce 部署 WPF 应用程序

于 2017-03-12T17:23:41.873 回答
1

您提到“Windows 保护了您的 PC”,所以我们很可能在这里谈论 SmartScreen 问题。RobinDotNet 在她的博客文章Windows 8 和 ClickOnce:最终答案Windows 8 和 ClickOnce:重新审视的最终答案中详细解释了 ClickOnce 和 Windows SmartScreen 的奇怪之处。

  1. 正如 mm8 在他的回答中指出的那样,您需要来自有效证书颁发机构的证书。
  2. 除了签署清单之外,您还需要签署应用程序可执行文件。由于您有一个 WPF 应用程序,因此您必须在 AfterCompile 执行此操作(至少 VS2012 是这样)。
  3. 我最喜欢的部分:您需要通过选择“仍然运行”选项的人来赢得一些神奇的声誉。对于我们的 ClickOnce 应用程序,SmartScreen 消息在几天后消失了。
于 2017-03-13T11:47:35.977 回答