C# - .NET 4.0 - Essa montagem não permite chamadores parcialmente confiáveis
-
27-09-2019 - |
Pergunta
Ao fugir de um compartilhamento de rede, meu aplicativo lança a seguinte exceção:
Essa assembléia não permite chamadores parcialmente confiáveis.
Meu aplicativo faz referência a dois arquivos DLL:
- BitFactory.Logging.dll
- FileHelpers.dll
Não tenho certeza de qual deles está tendo problemas.
AllowPartiallyTrustedCallersAttribute
: Leia sobre ele, mas não tenho a fonte de nenhum dos arquivos DLL, para que não consiga adicionar o atributo a esses arquivos DLL.CASPOL.EXE
: Adicionado meu compartilhamento de rede usando algumas variações, comocaspol -machine -addgroup 1. -url \\netserver\netshare\* LocalIntranet
Nada parece afetar.
Eu já usei o Caspol Hack antes, com o .NET 3.5, no entanto, parece não funcionar com o .NET 4.0 agora. Alguém pode sugerir como posso ignorar esse check -in?
Obrigado.
Solução
.NET 4.0 tem mudou as regras padrão para política de segurança. Você precisará criar ou modificar o App.config
Arquivo para este aplicativo.
Code Access Security (conforme configurado por CASPOL
) agora é ignorado por padrão no .NET 4.0. Se você deseja habilitá -lo, precisa adicionar o seguinte ao seu app.config
Arquivo:
<configuration>
<runtime>
<!-- enables legacy CAS policy for this process -->
<NetFx40_LegacySecurityPolicy enabled="true" />
</runtime>
</configuration>
Você pode configurar o .NET 4.0 para tratar o código da rede usando LoadFrom
Totalmente confiável com o seguinte item de configuração:
<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>