Partager via


élément <loadFromRemoteSources>

Spécifie si les assemblys chargés à partir de sources distantes doivent bénéficier d’une confiance totale dans .NET Framework 4 et versions ultérieures.

Note

Si vous avez été dirigé vers cet article en raison d’un message d’erreur dans la liste d’erreurs du projet Visual Studio ou d’une erreur de build, consultez Guide pratique pour utiliser un assembly à partir du web dans Visual Studio.

<Configuration>
   <Duree>
     <loadFromRemoteSources>

Syntaxe

<loadFromRemoteSources
   enabled="true|false"/>

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributes

Caractéristique Descriptif
enabled Attribut obligatoire.

Spécifie si un assembly chargé à partir d’une source distante doit bénéficier d’une confiance totale.

attribut activé

Valeur Descriptif
false N’accordez pas une confiance totale aux applications provenant de sources distantes. Il s’agit de la valeur par défaut.
true Accordez une confiance totale aux applications provenant de sources distantes.

Éléments enfants

Aucun.

Éléments parents

Élément Descriptif
configuration Élément racine de chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.
runtime Contient des informations sur les options d'initialisation du runtime.

Remarques

Dans .NET Framework 3.5 et versions antérieures, si vous chargez un assembly à partir d’un emplacement distant, le code de l’assembly s’exécute en approbation partielle avec un jeu d’octroi qui dépend de la zone à partir de laquelle il est chargé. Par exemple, si vous chargez un assembly à partir d’un site web, il est chargé dans la zone Internet et a accordé le jeu d’autorisations Internet. En d’autres termes, il s’exécute dans un bac à sable Internet.

À compter de .NET Framework 4, la stratégie de sécurité d’accès au code (CAS) est désactivée et les assemblys sont chargés en toute confiance. En règle générale, cela accorderait une confiance totale aux assemblys chargés avec la Assembly.LoadFrom méthode précédemment en bac à sable( sandbox). Pour éviter cela, la possibilité d’exécuter du code dans des assemblys chargés à partir d’une source distante est désactivée par défaut. Par défaut, si vous tentez de charger un assembly distant, un FileLoadException message d’exception semblable à ce qui suit est levée :

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.

Pour charger l’assembly et exécuter son code, vous devez :

  • Créez explicitement un bac à sable pour l’assembly (voir Guide pratique pour exécuter du code partiellement approuvé dans un bac à sable).

  • Exécutez le code de l’assembly en toute confiance. Pour ce faire, configurez l’élément <loadFromRemoteSources> . Il vous permet de spécifier que les assemblys qui s’exécutent en approbation partielle dans les versions antérieures du .NET Framework s’exécutent désormais en toute confiance dans le .NET Framework 4 et les versions ultérieures.

Important

Si l’assembly ne doit pas s’exécuter en confiance totale, ne définissez pas cet élément de configuration. Au lieu de cela, créez un bac à sable AppDomain dans lequel charger l’assembly.

L’attribut enabled de l’élément <loadFromRemoteSources> est effectif uniquement lorsque la sécurité de l’accès au code (CAS) est désactivée. Par défaut, la stratégie CAS est désactivée dans .NET Framework 4 et versions ultérieures. Si vous définissez enabled sur true, les assemblys distants bénéficient d’une confiance totale.

S’il enabled n’est pas défini truesur , un FileLoadException est levée dans l’une des conditions suivantes :

  • Le comportement de bac à sable du domaine actuel est différent de son comportement dans .NET Framework 3.5. Cela nécessite que la stratégie d’administration centrale soit désactivée et que le domaine actuel ne soit pas bac à sable (sandbox).

  • L’assembly en cours de chargement ne provient pas de la MyComputer zone.

Définition de l’élément <loadFromRemoteSources> pour true empêcher la levée de cette exception. Il vous permet de spécifier que vous ne vous fiez pas au Common Language Runtime pour bac à sable les assemblys chargés pour la sécurité et qu’ils peuvent être autorisés à s’exécuter en toute confiance.

Remarques

  • Dans .NET Framework 4.5 et versions ultérieures, les assemblys sur les partages de réseau local (autrement dit, la zone de sécurité Intranet local) s’exécutent en confiance totale par défaut ; vous n’avez pas besoin d’activer l’élément <loadFromRemoteSources> . Pour les zones de sécurité autres que l’ordinateur local ou l’intranet local, définissez la valeur truesur .

  • Si une application a été copiée à partir du web, elle est signalée par Windows comme étant une application web, même si elle réside sur l’ordinateur local. Vous pouvez modifier cette désignation en modifiant ses propriétés de fichier, ou vous pouvez utiliser l’élément pour accorder la <loadFromRemoteSources> confiance totale de l’assembly. En guise d’alternative, vous pouvez utiliser la UnsafeLoadFrom méthode pour charger un assembly local que le système d’exploitation a marqué comme ayant été chargé à partir du web.

  • Vous pouvez obtenir une FileLoadException application qui s’exécute dans une application Windows Virtual PC. Cela peut se produire lorsque vous essayez de charger un fichier à partir de dossiers liés sur l’ordinateur hôte. Cela peut également se produire lorsque vous essayez de charger un fichier à partir d’un dossier lié sur les services Bureau à distance (Services terminal). Pour éviter l’exception, affectez la enabledvaleur true .

Fichier de configuration

Cet élément est généralement utilisé dans le fichier de configuration de l’application, mais peut être utilisé dans d’autres fichiers de configuration en fonction du contexte. Pour plus d’informations, consultez l’article Autres utilisations implicites de la stratégie CAS : loadFromRemoteSources dans le blog de sécurité .NET.

Example

L’exemple suivant montre comment accorder une confiance totale aux assemblys chargés à partir de sources distantes.

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

Voir aussi