silverlight - 在浏览器受信任的应用程序 Silverlight 5

标签 silverlight elevated-privileges

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

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

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

  • 签署了 XAP——我是按照微软教程
  • 做的。
  • 安装受信任的发布者证书存储 — 我也按照 Microsoft 教程
  • 进行了安装
  • 添加值为 AllowElevatedTrustAppsInBrowser 的注册表项.

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

    即使有了这三个步骤,当从 localhost 之外的另一个 url 调用时,应用程序仍然无法工作。

    是否有人成功实现了浏览器内提升信任的应用程序?你看到我做错了吗?

    资料来源:
  • http://msdn.microsoft.com/en-us/library/gg192793(v=VS.96).aspx
  • http://pitorque.de/MisterGoodcat/post/Silverlight-5-Tidbits-Trusted-applications.aspx
  • 最佳答案

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

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

  • 使用代码签名 key 对 Xap 文件进行签名。
  • 将公共(public)代码签名 key 安装到“证书->当前用户->受信任的发布者”
  • SL 64 bit path: HKLM\Software\Wow6432Node\Microsoft\Silverlight
    SL 32 bit path: HKLM\Software\Microsoft\Silverlight
  • Open the Silverlight project in a text editor and verify the following entries exist:
    <RequireInBrowserElevation>true</RequireInBrowserElevation>
    <InBrowserSettingsFile>Properties\InBrowserSettings.xml</InBrowserSettingsFile>
    
    处设置 DWORD 注册表项 AllowElevatedTrustAppsInBrowser = 1
  • 检查 Properties\InBrowserSettings.xml 是否存在并包含:
    <InBrowserSettings>
      <InBrowserSettings.SecuritySettings>
        <SecuritySettings ElevatedPermissions="Required" />
      </InBrowserSettings.SecuritySettings>
    </InBrowserSettings>
    

  • 笔记:
  • 如果您在测试时使用自签名证书,您还需要将其安装到“证书->当前用户->受信任的根证书颁发机构”中。 (投产前购买)
  • 签署 XAP 文件后,您将无法解压缩和修改它,因为这样做会破坏签名(必须重新签名)。
  • 如果您正在缓存 xap 文件,请不要忘记清除浏览器缓存。
  • 这适用于带有 IE、Chrome、Firefox 和 Safari 的 Windows 7 和 Windows 8 Release Preview(桌面模式)。
  • 关于silverlight - 在浏览器受信任的应用程序 Silverlight 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8570470/

    相关文章:

    wpf - 你可以在 VisualStateManager 中为 TemplatedParent 设置 ZIndex 动画吗?

    silverlight - 这个绑定(bind)语法有什么问题: {Binding List[Index]}?

    c# - 从 Silverlight 调用 REST 服务

    wix - 在 Wix 安装程序中以管理员模式在 customAction 中运行 ExeCommand

    linux - 是否可以在不影响文件权限的情况下替换属于另一个用户的可执行文件中的字符串?

    powershell - 我的 PowerShell 脚本在从批处理文件或命令行打开时不起作用,但在直接运行时起作用

    asp.net - Silverlight API中的YouTube

    ASP.NET 或 ASP.NET MVC 或 Silverlight 或混合?

    windows - 将 Electron 应用程序作为管理窗口运行

    Powershell 启动进程脚本调用第二个脚本 - 如何只制作一个脚本