C # - .NET 4.0 - эта сборка не допускает частично доверенных абонентов - PullRequest
1 голос
/ 23 ноября 2010

При запуске из сетевой папки мое приложение выдает следующее исключение:

Эта сборка не допускает частично доверенных вызывающих абонентов.

Мое приложение ссылается на два DLL-файла:

  • BitFactory.Logging.dll
  • FileHelpers.dll

Я не уверен, с кем у него проблемы.

  • AllowPartiallyTrustedCallersAttribute: прочитайте об этом, но у меня нет источника ни для одного из файлов DLL, поэтому я не могу добавить атрибут к этим файлам DLL.

  • CASPOL.EXE: добавлена ​​моя сетевая папка с использованием нескольких вариантов, например caspol -machine -addgroup 1. -url \\netserver\netshare\* LocalIntranet, кажется, ничего не влияет.

Я использовал взлом CASPOL раньше, с .NET 3.5, однако, похоже, что теперь не работает с .net 4.0. Кто-нибудь может подсказать, как я могу обойти эту проверку «Частично доверенный абонент»?

Спасибо.

1 Ответ

11 голосов
/ 24 ноября 2010

.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>

. Вы можете настроить .NET 4.0 для обработки кода из сети, используя LoadFrom как полностью доверенного, с помощью следующегоэлемент конфигурации:

<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>
...