2012-05-29 61 views
3

自从将我们的产品转换为.NET 4.0并使用更新的代码访问安全模型后,我们遇到了问题。基本上我们有组件库,可以或不可以安装到机器上的GAC。.NET 4.0与GAC的XBAP安全问题

如果有人制作了XBAP,并使用这些库的默认部分信任设置,并且最终用户安装了XBAP(在安装期间部署库),但如果我们的库尚未在GAC中,则工作正常。

如果他们在GAC中,XBAP将在运行时失败并出现安全性异常。我相信这个问题是由于这样的: http://msdn.microsoft.com/en-us/library/aa970906.aspx

当管理组件安装到全局程序集缓存(GAC),他们成为完全可信的,因为用户必须提供安装它们的明确许可。由于它们是完全可信的,因此只有完全可信的托管客户端应用程序才能使用它

看起来,自从他们从GAC中撤出后,即使他们与XBAP部署了完全相同的.dll,他们的安全性也会提高。但是在那种情况下,一切都打破了。

有没有什么办法可以解决这个问题,只需将AllowPartiallyTrustedCallersAttribute添加到所有库中?

或者有没有办法阻止XBAP在GAC中查找程序集并仅使用它部署的引用的确切副本?

在此先感谢您的帮助。

回答

0

在Visual Studio的解决方案资源管理器中,单击参考并尝试将属性“SpecificVersion”设置为true。它只应查看指定的路径和引用时指定的版本,而不要在GAC中寻找最新的版本。

.net reference specificversion true or false?

请注意,如果您添加引用的新版本,你就必须删除当前的参考,它不会自动替换它。