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

StackOverflow https://stackoverflow.com/questions/4260782

Вопрос

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

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

Мое приложение ссылается на два файла 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.Может ли кто-нибудь подсказать, как обойти проверку «Частично доверенный абонент»?

Спасибо.

Это было полезно?

Решение

.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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top