已签名ClickOnce应用程序的手动更新引发TrustNotGrantedException



我有一个ClickOnce部署,它由赛门铁克获得的证书签名。启动安装程序后的安全警告提示会显示发布者名称。所以它是值得信赖的。但当呼叫时

ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate()

我得到了TrustNotGrantedException-用户拒绝向应用程序授予所需的权限。

如果我将证书添加到计算机上的受信任的发布者存储,则不会引发异常,并且还会将Symantec的CA添加到存储中。但很明显,我无法将证书添加到使用该应用程序的客户的Trusted Publishers Store中。

该应用程序首先从光盘安装,每次启动时都会检查在线更新url。如果我之后从受信任的发布者存储中删除证书,如果我再次尝试,手动更新仍然有效。这些信息是否也存储在其他地方?

如果我没有签署已发布的ClickOnce应用程序,手动更新会起作用。如果我使用makecert制作的自签名证书对已发布的ClickOnce应用程序进行签名,则手动更新有效。所以证书可能有问题?

如何确定是否存在证书问题以及下一步应该执行哪些步骤?

我们现在使用InPlaceHostingManager类。它是为安装或更新ClickOnce部署而设计的。GetManifestAsync()触发GetManifestCompleted事件,该事件会为您提供版本号。然后您可以调用DownloadApplicationAsync()并处理DownloadApplicationCompleted事件。到目前为止,这是有效的,并且没有抛出TrustNotGrantedException。

相关内容

  • 没有找到相关文章

最新更新