使用新的代码安全模型保护网站程序集

tsc*_*uck 12 plugins .net-4.0 code-access-security global-asax asp.net-mvc-3

我目前正在创建一个项目MVC site.由于需要插入第三方dll以提供自定义功能,因此该站点需要使用代码访问安全性.现在我们不希望这些程序集具有完全信任,因此在其中使用新的安全模型.NET 4.0

由于这些要求,我们正在强制命名所有自己的程序集,并将它们安装在gac中.其中一些程序集是与SecuritySafeCritical和SecurityCritical类型和成员混合的SecurityTransparent.

securityTransparent和SecurityCritical程序集,类型和成员可以像我们想要的那样由第三方程序集开发人员使用.

我现在对Global.asax文件有这个问题,该文件继承自驻留在标有该AllowPartiallyTrustedCallers属性的程序集中的类.

这个类又继承自HttpApplication.

在我web.config的信任级别目前设置为高.

我收到以下错误:

违反类型的继承安全规则:'ASP.global_asax'.派生类型必须与基本类型的安全可访问性匹配,或者不太容易访问

我想这是因为使用安全模型时的继承规则,并且HttpApplication该类必须具有比SecurityTransparent更严格的规则.

我尝试用SecuritySafeCritical属性标记我的自定义类,但没有运气.

我希望你们中的一些人能解决这个问题.

Pau*_*yng 1

如果您尝试保护对子HttpApplication类型的访问,我建议将其抽象为您知道安全的自定义接口,并允许第三方开发人员访问该接口,而不是尝试将安全性引导到现有的 .NET 类型。