1

从网络共享运行时,我的应用程序抛出以下异常:

该程序集不允许部分受信任的调用者。

我的应用程序引用了两个 DLL 文件:

  • BitFactory.Logging.dll
  • 文件助手.dll

我不确定哪一个有问题。

  • AllowPartiallyTrustedCallersAttribute:阅读它,但我没有这两个 DLL 文件的源代码,所以我无法将属性添加到这些 DLL 文件中。

  • CASPOL.EXE:使用一些变体添加了我的网络共享,例如caspol -machine -addgroup 1. -url \\netserver\netshare\* LocalIntranet似乎没有任何影响。

我以前使用 .NET 3.5 使用过 CASPOL hack,但是现在它似乎不适用于 .net 4.0。谁能建议我如何绕过这个“部分信任的呼叫者”检查?

谢谢。

4

1 回答 1

12

.NET 4.0更改了安全策略的默认规则。您需要App.config为此应用程序创建或修改文件。

CASPOL现在,在 .NET 4.0 中默认忽略代码访问安全性(由 配置)。如果要启用它,您需要将以下内容添加到app.config文件中:

<configuration>
   <runtime>
      <!-- enables legacy CAS policy for this process -->
      <NetFx40_LegacySecurityPolicy enabled="true" />
   </runtime>
</configuration>

LoadFrom您可以使用以下配置项将 .NET 4.0 配置为将来自网络的代码视为完全受信任的:

<configuration>
   <runtime>
      <!-- Treat assemblies from network locations as fully trusted. -->
      <!-- Caution: Do not point this loaded gun at your foot. -->
      <loadFromRemoteSources enabled="true" />
   </runtime>
</configuration>
于 2010-11-23T21:01:15.420 回答