11

我目前正在创建MVC site的项目。该网站需要使用代码访问安全性,因为第三方dll的需要被插入,以提供自定义功能。现在我们不希望这些程序集完全信任,因此利用新的安全模型.NET 4.0使用新代码安全模型保护网站程序集

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

securityTransparent和SecurityCritical程序集,类型和成员可以由第三方程序集开发人员按照我们的意图使用。

我现在的问题是Global.asax文件,该文件继承自标记为AllowPartiallyTrustedCallers属性的程序集中的类。

这个类继而从HttpApplication继承。

在我的web.config中,trustlevel目前设置为High。

,我发现了以下错误:

Inheritance security rules violated by type: 'ASP.global_asax'. Derived types must either match the security accessibility of the base type or be less accessible

我猜,使用安全模式时,那HttpApplication类必须有比SecurityTransparent更严格的规则,是因为继承规则。

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

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

回答

1

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