GAC的.NET 4.0 XBAP安全问题

时间:2012-05-29 12:57:04

标签: wpf gac xbap

自从将我们的产品转换为.NET 4.0并使用更新的代码访问安全模型后,我们遇到了问题。基本上我们有一些组件库可能会也可能不会安装到计算机上的GAC中。

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

如果他们在GAC中,XBAP将在运行时因安全异常而失败。我认为问题是由于这个原因: http://msdn.microsoft.com/en-us/library/aa970906.aspx

  

当托管程序集安装到全局程序集缓存(GAC)中时,它们将完全受信任,因为用户必须提供安装它们的明确权限。由于它们完全受信任,因此只有完全受信任的受管客户端应用程序才能使用它们。

似乎自从GA​​C撤出后,即使它们与XBAP部署完全相同,它们的安全性也会提升。但在那种情况下,一切都会破裂。

除了将AllowPartiallyTrustedCallersAttribute添加到所有库之外,还有办法解决这个问题吗?

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

提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

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

请参阅.net reference specificversion true or false?

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