【问题标题】:In browser trusted application Silverlight 5在浏览器受信任的应用程序 Silverlight 5
【发布时间】:2012-01-24 02:56:45
【问题描述】:

使用新的 Silverlight 5,我们现在可以拥有一个浏览器内提升信任的应用程序。 但是,我在部署应用程序时遇到了一些问题。

当我从 Visual Studio 测试应用程序时,一切正常,因为如果网站托管在本地计算机(本地主机,127.0.0.1)上,它会自动授予所有权限。

我在 MSDN 上看到我必须遵循 3 个步骤才能使其在任何网站上运行:

  1. 签署 XAP - 我是按照 Microsoft 教程完成的
  2. 安装受信任的发布者证书存储 - 我也按照 Microsoft 教程安装了
  3. 添加值为AllowElevatedTrustAppsInBrowser 的注册表项。

第三步是我最不确定的一步。我们需要在本地机器上还是在服务器上添加这个注册表项? Silverlight 中是否有自动添加此密钥的功能,还是制作批处理文件更好?

即使执行了这三个步骤,当从 localhost 以外的其他 url 调用时,应用程序仍然无法运行。

是否有人成功实施了浏览器内提升信任的应用程序?你知道我做错了什么吗?

来源:

【问题讨论】:

  • 您找到解决问题的方法了吗?我面临着完全相同的问题......谢谢
  • 查看 Fares Noueihed 答案。它指出自签名证书也需要添加到受信任的根证书颁发机构。

标签: silverlight elevated-privileges


【解决方案1】:

注册表编辑需要在客户端机器上;执行 Silverlight 应用程序的机器。

通过XAMLGEEK 有一个demo available;因为您布置的所有内容都应该使您处于工作状态。 Mike Taulty 还有一个excellent walk through。

【讨论】:

  • 您认为问题在于我使用的是创建的证书吗?我必须买一个吗?
  • 不,你不应该买一个。
  • 不,您不需要购买,但如果您创建自己的证书,您还需要将其添加到受信任的根证书颁发机构。仅将您自己的自签名证书添加到受信任的发布者将不起作用。 (参见 Fares Noueihed 的回答,它是迄今为止最全面的,并指出了这一点相当重要)
【解决方案2】:

有很多很好的资源来描述这个过程,包括这里的回复中提到的那些。我想记录对我们有用的步骤。 (银光 5.1.10411.0)

以下是我们为启用浏览器内受信任的应用程序所采取的步骤:

  1. 使用代码签名密钥对 Xap 文件进行签名。
  2. 将公共代码签名密钥安装到“证书->当前用户->受信任的发布者”中
  3. 在
    SL 64 位路径:HKLM\Software\Wow6432Node\Microsoft\Silverlight
    处设置 DWORD 注册表项 AllowElevatedTrustAppsInBrowser = 1
    SL 32 位路径:HKLM\Software\Microsoft\Silverlight
  4. 在文本编辑器中打开 Silverlight 项目并验证以下条目是否存在:
    <RequireInBrowserElevation>true</RequireInBrowserElevation>
    <InBrowserSettingsFile>Properties\InBrowserSettings.xml</InBrowserSettingsFile>
    
  5. 检查 Properties\InBrowserSettings.xml 是否存在并包含:
    <InBrowserSettings>
      <InBrowserSettings.SecuritySettings>
        <SecuritySettings ElevatedPermissions="Required" />
      </InBrowserSettings.SecuritySettings>
    </InBrowserSettings>
    

注意:

  • 如果您在测试时使用自签名证书,您还需要将其安装到“证书->当前用户->受信任的根证书颁发机构”中。 (在投入生产之前购买一个)
  • 签署 XAP 文件后,您将无法解压缩和修改它,因为这样做会破坏签名(必须重新签名)。
  • 如果您正在缓存 xap 文件,请不要忘记清除浏览器缓存。
  • 这适用于带有 IE、Chrome、Firefox 和 Safari 的 Windows 7 和 Windows 8 Release Preview(桌面模式)。

【讨论】:

  • 宾果游戏指出了自签名的陷阱。这似乎绊倒了很多人。
  • +1 对我来说,诀窍是将签名证书安装到受信任的发布者中(受信任的发布者和受信任的根证书颁发机构中的颁发机构证书是不够的)。
  • 一般情况下,如果我们需要一些证书来上传 SL 下的文件,您能解释一下吗?
【解决方案3】:

我已成功创建了浏览器内 Silverlight 5 应用程序,其特权提升至 this msdn article。 您可以随时通过以下方式检查您的应用是否提升了权限:

Application.Current.HasElevatedPermissions

我的问题是,虽然它在 Firefox 14 中没有问题,但 IE9 需要在 Windows 7 中以管理员身份运行。 我目前正在寻找一种无需以管理员身份执行 IE 即可使其正常工作的方法。 如果有人知道如何做到这一点,我将不胜感激。

编辑:

哇。实际上,来自 Aaron McIver 帖子的链接对我帮助很大。我刚刚关闭了“启用保护模式”,现在它可以在没有管理员权限的情况下正常工作。 :D

【讨论】:

    【解决方案4】:

    我想将 silverlight 应用程序连接到托管应用程序的同一主机地址上的端口 10001 上的套接字。

    是否可以在不更改客户端任何内容的情况下做到这一点?

    【讨论】:

      【解决方案5】:

      我也遇到了同样的问题

      当我们使用仅适用于本地机器的测试证书时。

      您必须使用另一个证书为您的应用程序签名,它才能工作。

      问题链接Silverlight 5 In browser trusted application

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        相关资源
        最近更新 更多