4

为了在浏览器内运行时启用对 Silverlight 5 应用程序的更高信任,我尝试了很多选项,例如这里(Goodcat 先生),并且只有在我添加注册表项AllowElevatedTrustAppsInBrowser时它才能很好地与我们的 VeriSign证书配合使用。对于我们的客户来说,这不是一种选择,因为我们的应用程序必须以提升的权限运行,并且必须在浏览器外和浏览器内运行(并且它只能在更改注册表项后才能工作)。该应用程序将托管在我们的互联网网站上。

是否可以在不添加注册表项的情况下为浏览器启用提升的信任(例如,在服务器上添加一些配置,但不在客户端上添加一些配置?是否可以向用户询问提升的权限,例如在Silverlight 4 用于网络摄像头捕捉?

4

2 回答 2

1

我过去也遇到过类似的问题。通过更改注册表设置配置应用程序后,它可以正常工作。但是客户质疑如果我们进行这样的设置会违反安全性。然后,我创建了一个 OOB 应用程序并使用 ClientAccessPolicy.xaml 文件来提升信任。在此之后,我不需要任何注册表更改或导入链接中提到的证书:http: //www.mistergoodcat.com/post/Silverlight-5-Tidbits-Trusted-applications

此外,如果有人可以详细说明更改注册表设置的安全问题。据我了解,因为我们只是为 Silverlight 应用程序进行更改。因此,任何其他恶意应用程序都无法运行,因为它可能没有安装受信任的证书(证书只能由管理员导入)

我使用这个 [链接] ( http://msdn.microsoft.com/en-us/library/dd833073(v=vs.95).aspx ) 创建了一个 OOB 应用程序。另外,我创建了一个包含以下内容的 ClientAccessPolicy 文件:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="SOAPAction">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
  <Deployment.OutOfBrowserSettings>
  <OutOfBrowserSettings.SecuritySettings>
    <SecuritySettings ElevatedPermissions="Required" />
  </OutOfBrowserSettings.SecuritySettings>
  </Deployment.OutOfBrowserSettings>
</access-policy>

然后我将我的应用程序发布到服务器,它作为 OOB 应用程序工作,无需修改注册表设置。

于 2014-06-19T15:54:18.917 回答
0

我有同样的问题。像 jv42 的答案一样,您必须添加注册表项才能在浏览器中启用 Silverlight 5 应用程序的提升信任。所以,我的解决方案是添加一个 OOB 应用程序来更改同一解决方案中的注册表项。if(Application.Current.HasElevatedPermissions) 在浏览器中的应用程序中为 false,启动 OOB 应用程序并将 AllowElevatedTrustAppsInBrowser 注册表添加到客户端计算机。当客户第一次使用您的应用程序时,它只需要一次。我希望它对其他有同样问题的人有用。

于 2013-04-10T13:26:45.710 回答