为了在浏览器中运行时提高 Silverlight 5 应用程序的信任度,我尝试了很多详细描述的选项,例如here (作者:Mister Goodcat)并且仅当我添加注册表项 AllowElevatedTrustAppsInBrowser 时,它才可以与我们的 VeriSign 证书 配合使用。 对于我们的客户来说,这不是一个选项,因为我们的应用程序必须以提升的权限运行,并且在浏览器外和浏览器内运行(并且它只能在更改注册表项后才能工作)。该应用程序将托管在我们的互联网网站上。
是否可以在不添加注册表项的情况下启用浏览器内的提升信任(例如,在服务器上添加一些配置,但不在客户端上添加一些配置?是否可以向用户询问像这样的提升权限例如在 Silverlight 4 中用于网络摄像头捕获?
最佳答案
我过去也遇到过类似的问题。在我通过更改注册表设置配置应用程序后,它可以正常工作。但客户质疑如果我们这样做会违反安全规定。然后,我创建了一个 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 应用程序运行,无需修改注册表设置。
关于security - 在浏览器中运行时启用 Silverlight 5 应用程序的提升信任,无需添加注册表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14686317/