Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
elemento
Especifica se assemblies carregados a partir de fontes remotas devem ter total confiança no .NET Framework 4 e versões posteriores.
Observação
Se foi encaminhado para este artigo devido a uma mensagem de erro na lista de erros do projeto Visual Studio ou a um erro de compilação, veja Como: Usar um Assembly da Web no Visual Studio.
<configuration>
<runtime>
<loadFromRemoteSources>
Sintaxe
<loadFromRemoteSources
enabled="true|false"/>
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai.
Attributes
| Attribute | Description |
|---|---|
enabled |
Atributo obrigatório. Especifica se um assembly carregado a partir de uma fonte remota deve receber total confiança. |
atributo habilitado
| Valor | Description |
|---|---|
false |
Não conceda total confiança a candidaturas provenientes de fontes remotas. Este é o padrão. |
true |
Conceda total confiança a candidaturas provenientes de fontes remotas. |
Elementos filho
Nenhum.
Elementos pai
| Elemento | Description |
|---|---|
configuration |
O elemento raiz em cada arquivo de configuração usado pelo Common Language Runtime e aplicativos .NET Framework. |
runtime |
Contém informações sobre opções de inicialização de tempo de execução. |
Observações
No .NET Framework 3.5 e versões anteriores, se carregar um assembly a partir de uma localização remota, o código no assembly corre em confiança parcial com um conjunto de concessões que depende da zona de onde é carregado. Por exemplo, se carregar uma montagem a partir de um site, ela é carregada na zona da Internet e recebe o conjunto de permissões da Internet. Ou seja, executa-se num sandbox da Internet.
A partir do .NET Framework 4, a política de segurança de acesso ao código (CAS) é desativada e os assemblies são carregados em total confiança. Normalmente, isto concederia total confiança às assembleias carregadas com o Assembly.LoadFrom método que anteriormente tinha sido rejeitado. Para evitar isto, a capacidade de executar código em assemblies carregados a partir de uma fonte remota está desativada por defeito. Por defeito, se tentar carregar um assembly remoto, aparece uma FileLoadException mensagem com exceção como a seguinte:
System.IO.FileNotFoundException: Could not load file or assembly 'file:assem.dll' or one of its dependencies. Operation is not supported.
(Exception from HRESULT: 0x80131515)
File name: 'file:assem.dll' --->
System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly
to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default,
so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch.
Para carregar o assembly e executar o seu código, deves ou:
Crie explicitamente um sandbox para a assembly (ver Como: Executar Código Parcialmente Confiável num Sandbox).
Executar o código da assembleia em total confiança. Faz-se isto configurando o
<loadFromRemoteSources>elemento. Permite especificar que os assemblies que correm em parcial trust nas versões anteriores do .NET Framework agora correm em total trust no .NET Framework 4 e versões posteriores.
Importante
Se o conjunto não deve correr em total confiança, não defina este elemento de configuração. Em vez disso, crie um sandbox AppDomain onde carregar a montagem.
O enabled atributo do <loadFromRemoteSources> elemento só é eficaz quando a segurança de acesso ao código (CAS) está desativada. Por defeito, a política CAS está desativada no .NET Framework 4 e versões posteriores. Se definires enabled para true, as assembleias remotas recebem total confiança.
Se enabled não for definido como true, a FileLoadException é lançado sob qualquer uma das seguintes condições:
O comportamento de sandboxing do domínio atual é diferente do seu comportamento no .NET Framework 3.5. Isto exige que a política CAS seja desativada e que o domínio atual não seja colocado em sandbox.
O conjunto que está a ser carregado não é da
MyComputerzona.
Definir o <loadFromRemoteSources> elemento para true impede que esta exceção seja lançada. Permite-lhe especificar que não está a depender do runtime da common language para sandboxear os assemblies carregados por questões de segurança, e que podem ser autorizados a executar em total confiança.
Observações
No .NET Framework 4.5 e versões posteriores, os assemblies em partilhas de rede local (ou seja, a zona de segurança da Intranet Local) executam em total confiança por defeito; Não precisas de ativar o
<loadFromRemoteSources>elemento. Para zonas de segurança que não sejam Máquina Local ou Intranet Local, defina o valor paratrue.Se uma aplicação foi copiada da web, é assinalada pelo Windows como sendo uma aplicação web, mesmo que resida no computador local. Pode alterar essa designação alterando as propriedades do ficheiro, ou pode usar o
<loadFromRemoteSources>elemento para conceder total confiança ao assembly. Como alternativa, pode usar o UnsafeLoadFrom método para carregar um assembly local que o sistema operativo assinalou como tendo sido carregado a partir da web.Pode aparecer uma FileLoadException numa aplicação que está a correr numa aplicação Windows Virtual PC. Isto pode acontecer quando tentas carregar um ficheiro a partir de pastas ligadas no computador anfitrião. Também pode acontecer quando tenta carregar um ficheiro a partir de uma pasta ligada através dos Serviços de Ambiente de Trabalho Remoto (Serviços de Terminais). Para evitar a exceção, defina
enabledparatrue.
Arquivo de configuração
Este elemento é tipicamente usado no ficheiro de configuração da aplicação, mas pode ser usado noutros ficheiros de configuração dependendo do contexto. Para mais informações, consulte o artigo Mais Usos Implícitos da Política CAS: loadFromRemoteSources no blogue .NET Security.
Example
O exemplo seguinte mostra como conceder total confiança a assemblies carregados a partir de fontes remotas.
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>