C# — .NET 4.0 — эта сборка не допускает частично доверенных вызывающих абонентов.
-
27-09-2019 - |
Вопрос
При запуске из общего сетевого ресурса мое приложение выдает следующее исключение:
Эта сборка не позволяет вызывающим абонентам с частичным доверием.
Мое приложение ссылается на два файла 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>