如果我运行我的应用程序的 setup.exe,并且证书不是商店中的受信任证书。我得到以下对话框。
只要用户点击安装一切都很好。
现在我有另一个应用程序 Portal,它启动 ClickOnce 应用程序。门户已安装并已接受证书(不同的 pfx 文件)。
现在,当门户通过代码启动应用程序 1 时,不会显示上述提示(因为它已经在安全上下文下运行?)。大部分代码来自微软网站的InplaceHostingManager 。
现在,当应用程序 1 运行时,它会收到用户拒绝特权的错误。我理解这是因为用户从未点击过上述警告,应用程序 1 没有它需要的权限。来自微软的网站:
如果应用程序使用受信任的应用程序部署,公共语言运行时 (CLR) 信任管理器会检查部署清单以确定它是否包含有效的信任许可证。如果部署清单不包含有效的信任许可证,ClickOnce 将停止安装并引发 TrustNotGrantedException。更新永远不会显示询问用户是否要授予应用程序运行权限的提示。
所以我有一些选择。
获取有效证书。现在对于这些应用程序,我们无法证明两年大约 400 美元的成本是合理的。我正在考虑创建我们自己的证书,但是,将证书部署到内部客户端计算机是网络团队可能会感到满意的事情。将证书添加到整个公司的受信任根中涉及的内容。
或者以某种方式检测应用程序是否已安装。如果没有,请调用 setup.exe。如果这样运行,现有的部署代码。如何确定应用程序是否已安装?