C#-.NET 4.0-该程序集不允许部分受信任的调用者

C#-.NET 4.0-该程序集不允许部分受信任的调用者,c#,.net-4.0,c#-4.0,caspol,.net-security,C#,.net 4.0,C# 4.0,Caspol,.net Security,从网络共享运行时,我的应用程序引发以下异常: 该程序集不允许部分受信任的调用方。 我的应用程序引用了两个DLL文件: BitFactory.Logging.dll FileHelpers.dll 我不确定哪一个有问题 AllowPartiallyTrustedCallersAttribute:请仔细阅读,但我没有这两个DLL文件的源代码,因此无法将该属性添加到这些DLL文件中 CASPOL.EXE:使用一些变体添加了我的网络共享,例如CASPOL-machine-addgroup 1-ur

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

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

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

  • BitFactory.Logging.dll
  • FileHelpers.dll
我不确定哪一个有问题

  • AllowPartiallyTrustedCallersAttribute
    :请仔细阅读,但我没有这两个DLL文件的源代码,因此无法将该属性添加到这些DLL文件中

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

我以前在.NET3.5中使用过CaspolHack,但是现在它似乎不适用于.NET4.0。有人能建议我如何绕过这个“部分受信任的呼叫方”检查吗

谢谢。

.NET 4.0已经为安全策略提供了支持。您需要为此应用程序创建或修改
App.config
文件

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


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


.NET 4.0已经为安全策略提供了一个新的解决方案。您需要为此应用程序创建或修改
App.config
文件

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


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



这两个程序集是在GAC中还是在您的应用程序目录中?听起来好像策略被覆盖了。Fuslogvw.exe可以向您展示。这两个程序集是在GAC中还是在您的应用程序目录中?听起来好像策略被覆盖了。Fuslogvw.exe可以向您展示。我没有显式使用“LoadFrom”,只是添加了对相关DLL的引用。上述两个选项似乎都没有任何效果。@nsr81是您的可执行文件的强名称吗?不是。在我使用*.snk密钥文件对可执行文件进行签名后,一切都很好。@Jeffrey Hantin嗨,我已经尝试了你们上面发布的方法,但对我不起作用。我使用sn.exe生成了一个密钥。然后使用此密钥为每个项目配置程序集签名。最后,它仍然抱怨第三方程序集(即FileHelpers.dll)没有强名称。我是不是错过了什么地方?非常感谢@Candy签名程序集不能依赖于未签名的第三方程序集——这是一个无法避免的编译错误。我没有显式使用“LoadFrom”,只是添加了对相关DLL的引用。上述两个选项似乎都没有任何效果。@nsr81是您的可执行文件的强名称吗?不是。在我使用*.snk密钥文件对可执行文件进行签名后,一切都很好。@Jeffrey Hantin嗨,我已经尝试了你们上面发布的方法,但对我不起作用。我使用sn.exe生成了一个密钥。然后使用此密钥为每个项目配置程序集签名。最后,它仍然抱怨第三方程序集(即FileHelpers.dll)没有强名称。我是不是错过了什么地方?非常感谢@有签名的程序集不能依赖于无签名的第三方程序集——这是一个无法避免的编译错误。