我目前正在一个项目中创建一个MVC site。网站需要使用代码访问安全性,因为第三方dll需要插入才能提供自定义功能。现在我们不希望这些程序集具有完全信任,因此在.NET 4.0中使用新的安全模型
由于这些要求,我们正在对所有自己的程序集进行命名,并将它们安装在gac中。其中一些程序集是SecurityTransparent与SecuritySafeCritical和SecurityCritical类型及成员混合的。
securityTransparent和SecurityCritical程序集、类型和成员可以按照我们的意愿由第三方程序集开发人员使用。
现在,Global.asax文件出现了这个问题,该文件继承了驻留在带有AllowPartiallyTrustedCallers属性的程序集中的类。
这个类又继承自HttpApplication。
在我的web.config中,信任级别当前设置为High。
我得到了以下错误:
违反
继承安全规则的类型:“ASP.NET_asax”。派生类型必须与基类型的安全可访问性匹配,或者不可访问。
我猜这是因为在使用安全模型时有继承规则,而且HttpApplication类必须有比SecurityTransparent更严格的规则。
我尝试用SecuritySafeCritical属性标记我的自定义类,但没有成功。
我希望你们中的一些人能找到解决这个问题的办法。
发布于 2011-10-31 21:01:53
如果您试图保护对HttpApplication子类型的访问,我将重新将其抽象到您知道是安全的自定义接口中,并允许第三方开发人员访问该接口,而不是尝试将安全性引导到现有的.NET类型。
https://stackoverflow.com/questions/7820134
复制相似问题