计算机在安装WPF应用程序时识别可信/未知发布者时的工作原理?

时间:2017-03-11 20:53:57

标签: wpf security clickonce policy verisign

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

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

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

2 个答案:

答案 0 :(得分:2)

必须在所有用户计算机上的“受信任的发布者”证书存储中配置用于对ClickOnce应用程序进行签名的证书。

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

有关此内容的更多信息,请参阅以下链接。

WPF Application Deployment using ClickOnce with trust certificate

答案 1 :(得分:1)

您提到“Windows保护您的PC”,所以我们很可能在这里讨论SmartScreen问题。 RobinDotNet在她的博客文章Windows 8 and ClickOnce : the definitive answerWindows 8 and ClickOnce : the definitive answer revisited中详细解释了ClickOnce和Windows SmartScreen的奇怪之处。

  1. 正如mm his answer中指出的那样,您需要来自有效证书颁发机构的证书。
  2. 除了签署清单外,您还需要签署应用程序可执行文件。既然你有一个WPF应用程序,你将不得不这样做AfterCompile(至少VS2012是这样)。
  3. 我最喜欢的部分:你需要通过选择“Run anyway”选项获得一些神奇的声誉。对于我们的ClickOnce应用程序,几天后SmartScreen消息就消失了。