0

我的 4.0 MVC 应用程序将 PDF 视图呈现到屏幕上。这一切都适用于我的开发盒,但会从主机提供者环境中产生安全违规。作为补偿,我在控制器上添加了 [AllowPartiallyTrustedCallers] 和 [SecurityCritical] 属性。只是现在,我的两个 nuget 包无法编译,因为它们不符合强名称。因此,当我尝试以下步骤以使它们具有强命名时,我最终会遇到运行时错误。任何建议表示赞赏。

强命名 nuget dll 的步骤。

1) ldasm /all /out=Rotativa.il Rotativa.dll
2) sn -k Rotativa.snk
3) ilasm /dll /key=Rotativa.snk Rotativa.il

运行时错误:{“尝试通过安全透明方法 'my_App.M vc Application.Application_Start()' 访问安全关键方法 'System.Web.Optimization.Bundle Table.get_Bundles()' 失败。\n\n 程序集 'my_App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'被标记为'Allow Partially Trusted Callers Attribute',并使用2级安全透明模型。2级透明导致'Allow Partially Trusted Callers Attribute'程序集中的所有方法默认情况下变得安全透明,这可能是导致此异常的原因。"}

通过安全透明方法 'my_App. M vc Application.Application_Start()' 访问安全关键方法 'System.Web.Optimization.Bundle Table.get_Bundles()' 失败。

程序集 'my_App, Version=1.0.0.0, Culture=neutral, Public Key Token=null' 标有 'Allow Partially Trusted Callers Attribute',并使用 2 级安全透明模型。2 级透明度会导致“允许部分受信任的调用者”程序集中的所有方法默认变为安全透明,这可能是此异常的原因。

4

1 回答 1

0

您是否已经在您的程序集及其依赖项上执行了 .NET 安全注释器工具?它会指导您完成使其符合 2 级标准的步骤。

http://msdn.microsoft.com/en-us/library/dd997356.aspx

于 2013-09-06T11:34:11.523 回答