• Silverlight OOB程序签名问题


    浏览器外部署Silverlight时,为了让部署到本地的Silverlight应用程序保持最新,通常需要在应用程序中添加更新检查的功能。具体实现可参见这儿。

    除了文中提到的“应用程序中使用了用户尚未安装的Silverlight新版本”会造成检查更新失败外,可能还会遇到“无法更新应用程序,已安装的应用程序和更新备选程序的证书/签名状态不同。”的错误。Silverlight的安全机制要求已安装的应用程序和更新备选程序必须具有相同的证书/签名状态,如果未对XAP包进行签名,则不能满足该要求。因此,如果准备在正式环境中(本机开发环境中一般是遇不到的)实现Silverlight应用程序浏览器外部署时的更新检查,必须对XAP包进行签名。

    如果能申请正式的数字证书当然是最好的解决方案,如果只是在企业内部或小范围内应用,也可以采用自制证书对XAP包进行签名,步骤如下:

    1、使用makecert建立自制的数字签名:

    makecert -r -pe -ss Privatecertstore -n "CN=MyName" MyCert.cer

    如果出现“ ‘makecert’不是内部或外部命令... ”的提示,是因为makecert所在的路径未加入到系统环境变量Path中,利用Visual Studio Command Prompt可以避免这个问题。

    2、利用上一步生成的证书对XAP包进行签名:

    signtool sign /v /s Privatecertstore /n MyName MyApp.xap

    由于证书是自制的且未添加到受信任区域,安装Silverlight应用程序到本地时仍会出现“无法验证发布者。”的警告,但通过以上步骤签名后的Silverlight应用程序已经可以满足“已安装的应用程序和更新备选程序必须具有相同的证书/签名状态”的要求。

  • 相关阅读:
    软件杯-题目和插件
    基于《河北省重大技术需求征集系统》的可用性和可修改性战术分析
    基于淘宝网的系统质量属性六大场景
    架构漫谈读后感
    06掌握需求过程阅读笔记之一
    大道至简读后感以及JAVA伪代码
    K8S学习笔记
    事务的七种传播类型、及案例
    香港身份证规则
    oracle函数
  • 原文地址:https://www.cnblogs.com/Kingly/p/3406171.html
Copyright © 2020-2023  润新知