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

时间:2011-10-19 10:50:13

标签: asp.net-mvc-3 plugins .net-4.0 global-asax code-access-security

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

中使用新的安全模型

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

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

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

此类继承自HttpApplication

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

我收到以下错误:

  

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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