<elemento de > loadFromRemoteSources<loadFromRemoteSources> element

Especifica se os assemblies carregados de fontes remotas devem receber confiança total no .NET Framework 4 e posterior.Specifies whether assemblies loaded from remote sources should be granted full trust in .NET Framework 4 and later.

Observação

Se você foi direcionado para este artigo devido a uma mensagem de erro na lista de erros do projeto do Visual Studio ou um erro de compilação, consulte como: usar um assembly da Web no Visual Studio.If you were directed to this article because of an error message in the Visual Studio project error list or a build error, see How to: Use an Assembly from the Web in Visual Studio.

<configuration> <configuration>
    <runtime >   <runtime>
     <loadFromRemoteSources >    <loadFromRemoteSources>

SintaxeSyntax

<loadFromRemoteSources    
   enabled="true|false"/>  

Atributos e elementosAttributes and elements

As seções a seguir descrevem atributos, elementos filho e elementos pai.The following sections describe attributes, child elements, and parent elements.

AtributosAttributes

AtributoAttribute DescriçãoDescription
enabled Atributo obrigatório.Required attribute.

Especifica se um assembly que é carregado de uma fonte remota deve receber confiança total.Specifies whether an assembly that is loaded from a remote source should be granted full trust.

atributo habilitadoenabled attribute

ValorValue DescriçãoDescription
false Não conceda confiança total a aplicativos de fontes remotas.Do not grant full trust to applications from remote sources. Esse é o padrão.This is the default.
true Conceda confiança total a aplicativos de fontes remotas.Grant full trust to applications from remote sources.

Elementos filhoChild elements

nenhuma.None.

Elementos paiParent elements

ElementoElement DescriçãoDescription
configuration O elemento raiz em cada arquivo de configuração usado pelos aplicativos do Common Language Runtime e .NET Framework.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contém informações sobre opções de inicialização do runtime.Contains information about runtime initialization options.

ComentáriosRemarks

No .NET Framework 3,5 e versões anteriores, se você carregar um assembly de um local remoto, o código no assembly será executado em confiança parcial com um conjunto de concessão que depende da zona da qual ele está carregado.In the .NET Framework 3.5 and earlier versions, if you load an assembly from a remote location, code in the assembly runs in partial trust with a grant set that depends on the zone from which it is loaded. Por exemplo, se você carregar um assembly de um site, ele será carregado na zona da Internet e terá o conjunto de permissões da Internet.For example, if you load an assembly from a website, it is loaded into the Internet zone and granted the Internet permission set. Em outras palavras, ele é executado em uma área restrita da Internet.In other words, it executes in an Internet sandbox.

A partir do .NET Framework 4, a política de CAS (segurança de acesso ao código) é desabilitada e os assemblies são carregados em confiança total.Starting with the .NET Framework 4, code access security (CAS) policy is disabled and assemblies are loaded in full trust. Normalmente, isso concederia confiança total a assemblies carregados com o método Assembly.LoadFrom que anteriormente estava na área restrita.Ordinarily, this would grant full trust to assemblies loaded with the Assembly.LoadFrom method that previously had been sandboxed. Para evitar isso, a capacidade de executar código em assemblies carregados de uma fonte remota é desabilitada por padrão.To prevent this, the ability to run code in assemblies loaded from a remote source is disabled by default. Por padrão, se você tentar carregar um assembly remoto, um FileLoadException com uma mensagem de exceção semelhante à seguinte será lançada:By default, if you attempt to load a remote assembly, a FileLoadException with an exception message like the following is thrown:

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 seu código, você deve:To load the assembly and execute its code, you must either:

  • Crie explicitamente uma área restrita para o assembly (consulte como: executar código parcialmente confiável em uma área restrita).Explicitly create a sandbox for the assembly (see How to: Run Partially Trusted Code in a Sandbox).

  • Execute o código do assembly em confiança total.Run the assembly's code in full trust. Você faz isso Configurando o elemento <loadFromRemoteSources>.You do this by configuring the <loadFromRemoteSources> element. Ele permite que você especifique que os assemblies que são executados em confiança parcial em versões anteriores do .NET Framework agora são executados com confiança total no .NET Framework 4 e versões posteriores.It lets you specify that the assemblies that run in partial trust in earlier versions of the .NET Framework now run in full trust in the .NET Framework 4 and later versions.

Importante

Se o assembly não deve ser executado com confiança total, não defina este elemento de configuração.If the assembly should not run in full trust, do not set this configuration element. Em vez disso, crie uma AppDomain em área restrita na qual carregar o assembly.Instead, create a sandboxed AppDomain in which to load the assembly.

O atributo enabled para o elemento <loadFromRemoteSources> é efetivo somente quando a segurança de acesso ao código (CAS) está desabilitada.The enabled attribute for the <loadFromRemoteSources> element is effective only when code access security (CAS) is disabled. Por padrão, a política de CAS é desabilitada no .NET Framework 4 e em versões posteriores.By default, CAS policy is disabled in the .NET Framework 4 and later versions. Se você definir enabled como true, os assemblies remotos terão confiança total.If you set enabled to true, remote assemblies are granted full trust.

Se enabled não estiver definido como true, um FileLoadException será lançado sob uma das seguintes condições:If enabled is not set to true, a FileLoadException is thrown under the either of the following conditions:

  • O comportamento de área restrita do domínio atual é diferente do seu comportamento no .NET Framework 3,5.The sandboxing behavior of the current domain is different from its behavior in the .NET Framework 3.5. Isso requer que a política de CAS seja desabilitada e o domínio atual não seja colocado em área restrita.This requires CAS policy to be disabled, and the current domain not to be sandboxed.

  • O assembly que está sendo carregado não é da zona de MyComputer.The assembly being loaded is not from the MyComputer zone.

A definição do elemento <loadFromRemoteSources> como true impede que essa exceção seja gerada.Setting the <loadFromRemoteSources> element to true prevents this exception from being thrown. Ele permite que você especifique que você não depende do Common Language Runtime para colocar os assemblies carregados em área restrita para segurança e que eles podem ter permissão para serem executados em confiança total.It enables you to specify that you are not relying on the common language runtime to sandbox the loaded assemblies for security, and that they can be allowed to execute in full trust.

AnotaçõesNotes

  • No .NET Framework 4,5 e versões posteriores, os assemblies em compartilhamentos de rede local são executados em confiança total por padrão; Você não precisa habilitar o elemento <loadFromRemoteSources>.In the .NET Framework 4.5 and later versions, assemblies on local network shares run in full trust by default; you do not have to enable the <loadFromRemoteSources> element.

  • Se um aplicativo tiver sido copiado da Web, ele será sinalizado pelo Windows como sendo um aplicativo Web, mesmo que ele resida no computador local.If an application has been copied from the web, it is flagged by Windows as being a web application, even if it resides on the local computer. Você pode alterar essa designação alterando suas propriedades de arquivo ou pode usar o elemento <loadFromRemoteSources> para conceder confiança total ao assembly.You can change that designation by changing its file properties, or you can use the <loadFromRemoteSources> element to grant the assembly full trust. Como alternativa, você pode usar o método UnsafeLoadFrom para carregar um assembly local que o sistema operacional tenha sinalizado como tendo sido carregado da Web.As an alternative, you can use the UnsafeLoadFrom method to load a local assembly that the operating system has flagged as having been loaded from the web.

  • Você pode obter um FileLoadException em um aplicativo que está sendo executado em um aplicativo do Windows Virtual PC.You may get a FileLoadException in an application that is running in a Windows Virtual PC application. Isso pode acontecer quando você tenta carregar um arquivo de pastas vinculadas no computador host.This can happen when you try to load a file from linked folders on the hosting computer. Ele também pode ocorrer quando você tenta carregar um arquivo de uma pasta vinculada por serviços de área de trabalho remota (serviços de terminal).It can also occur when you try to load a file from a folder linked over Remote Desktop Services (Terminal Services). Para evitar a exceção, defina enabled como true.To avoid the exception, set enabled to true.

arquivo de configuraçãoConfiguration file

Esse elemento é normalmente usado no arquivo de configuração do aplicativo, mas pode ser usado em outros arquivos de configuração, dependendo do contexto.This element is typically used in the application configuration file, but can be used in other configuration files depending upon the context. Para obter mais informações, consulte o artigo usos mais implícitos da política de CAS: loadFromRemoteSources no blog de segurança do .net.For more information, see the article More Implicit Uses of CAS Policy: loadFromRemoteSources in the .NET Security blog.

ExemploExample

O exemplo a seguir mostra como conceder confiança total a assemblies carregados de fontes remotas.The following example shows how to grant full trust to assemblies loaded from remote sources.

<configuration>  
   <runtime>  
      <loadFromRemoteSources enabled="true"/>  
   </runtime>  
</configuration>  

Consulte tambémSee also