我目前正在创建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
属性标记我的自定义类,但没有运气。
我希望你们中的一些人能够解决这个问题。