C# - .NET 4.0 - эта сборка не допускает частично доверенных абонентов

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

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

Мое приложение ссылается на два 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 ответ

Решение

.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>
Другие вопросы по тегам