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, como caspol -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.

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top