Sdílet prostřednictvím


<loadFromRemoteSources> prvek

Určuje, zda mají být sestavení načtená ze vzdálených zdrojů udělena úplná důvěryhodnost v rozhraní .NET Framework 4 a novější.

Poznámka:

Pokud jste byli přesměrováni na tento článek z důvodu chybové zprávy v seznamu chyb projektu sady Visual Studio nebo chyby sestavení, přečtěte si téma Postupy: Použití sestavení z webu v sadě Visual Studio.

<konfigurace>
   <runtime>
     <loadFromRemoteSources>

Syntaxe

<loadFromRemoteSources
   enabled="true|false"/>

Atributy a prvky

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Attributes

Vlastnost Description
enabled Povinný atribut.

Určuje, zda má být uděleno úplné důvěryhodnosti sestavení načtené ze vzdáleného zdroje.

atribut enabled

Hodnota Description
false Neudělujte aplikacím ze vzdálených zdrojů úplný vztah důvěryhodnosti. Toto je výchozí hodnota.
true Udělte aplikacím úplný vztah důvěryhodnosti ze vzdálených zdrojů.

Podřízené prvky

Žádné.

Nadřazené prvky

prvek Description
configuration Kořenový prvek v každém konfiguračním souboru, který je používán modulem Common Language Runtime (CLR) a aplikacemi rozhraní .NET Framework.
runtime Obsahuje informace o možnostech inicializace modulu runtime.

Poznámky

Pokud v rozhraní .NET Framework 3.5 a starších verzích načtete sestavení ze vzdáleného umístění, kód v sestavení se spustí v částečné důvěryhodnosti se sadou grantů, která závisí na zóně, ze které je načtena. Pokud například načtete sestavení z webu, načte se do zóny Internetu a udělíte sadě oprávnění k internetu. Jinými slovy se spustí v internetovém sandboxu.

Počínaje rozhraním .NET Framework 4 je zásada zabezpečení přístupu kódu (CAS) zakázaná a sestavení se načtou v plném vztahu důvěryhodnosti. Obvykle by to udělovalo úplný vztah důvěryhodnosti sestavením načteným s metodou Assembly.LoadFrom , která byla dříve v izolovaném prostoru (sandbox). Chcete-li tomu zabránit, je ve výchozím nastavení zakázaná možnost spouštět kód v sestaveních načtených ze vzdáleného zdroje. Pokud se ve výchozím nastavení pokusíte načíst vzdálené sestavení, FileLoadException vyvolá se zpráva s výjimkou, například následující:

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.

Pokud chcete načíst sestavení a spustit jeho kód, musíte provést následující:

  • Explicitně vytvořte sandbox pro sestavení (viz Postupy: Spuštění částečně důvěryhodného kódu v sandboxu).

  • Spusťte kód sestavení v plném vztahu důvěryhodnosti. Provedete to konfigurací elementu <loadFromRemoteSources> . Umožňuje určit, že sestavení, která běží v částečné důvěryhodnosti v dřívějších verzích rozhraní .NET Framework, nyní běží v plné důvěryhodnosti v rozhraní .NET Framework 4 a novějších verzích.

Důležité

Pokud by sestavení nemělo být spuštěno v plném vztahu důvěryhodnosti, nenastavujte tento konfigurační prvek. Místo toho vytvořte sandbox, AppDomain do kterého chcete načíst sestavení.

Atribut enabled elementu <loadFromRemoteSources> je efektivní pouze v případě, že je zakázáno zabezpečení přístupu kódu (CAS). Ve výchozím nastavení jsou zásady CAS zakázané v rozhraní .NET Framework 4 a novějších verzích. Pokud nastavíte enabled hodnotu true, jsou vzdálená sestavení udělena úplná důvěryhodnost.

Pokud enabled není nastavena na truehodnotu , vyvolá se za FileLoadException některé z následujících podmínek:

  • Chování sandboxu aktuální domény se liší od jeho chování v rozhraní .NET Framework 3.5. To vyžaduje zakázání zásad CAS a aktuální doména není v izolovaném prostoru (sandbox).

  • Sestavení, které se načítá, není ze MyComputer zóny.

Nastavení elementu <loadFromRemoteSources> tak, aby true se zabránilo vyvolání této výjimky. Umožňuje určit, že se nespoléháte na modul CLR (Common Language Runtime) k sandboxu načtených sestavení pro zabezpečení a že je možné je spouštět v plném vztahu důvěryhodnosti.

Poznámky

  • V rozhraní .NET Framework 4.5 a novějších verzích se sestavení ve sdílených složkách místní sítě (tj. zóna zabezpečení místního intranetu) spouští ve výchozím nastavení v plné důvěryhodnosti; prvek nemusíte povolovat <loadFromRemoteSources> . Pro jiné zóny zabezpečení než Místní počítač nebo Místní intranet nastavte hodnotu na truehodnotu .

  • Pokud byla aplikace zkopírovaná z webu, označí ji windows jako webovou aplikaci, i když se nachází v místním počítači. Toto označení můžete změnit změnou vlastností souboru nebo můžete pomocí <loadFromRemoteSources> elementu udělit úplný vztah důvěryhodnosti sestavení. Jako alternativu můžete použít metodu UnsafeLoadFrom k načtení místního sestavení, které operační systém označil jako načtený z webu.

  • Můžete získat FileLoadException aplikaci, která běží v aplikaci Windows Virtual PC. K tomu může dojít, když se pokusíte načíst soubor z propojených složek na hostitelském počítači. Může k němu dojít také při pokusu o načtení souboru ze složky propojené přes Službu vzdálené plochy (Terminálová služba). Chcete-li se vyhnout výjimce, nastavte enabled na truehodnotu .

Konfigurační soubor

Tento prvek se obvykle používá v konfiguračním souboru aplikace, ale lze ho použít v jiných konfiguračních souborech v závislosti na kontextu. Další informace najdete v článku Další implicitní použití zásad CAS: loadFromRemoteSources v blogu zabezpečení .NET.

Example

Následující příklad ukazuje, jak udělit úplný vztah důvěryhodnosti sestavení načtené ze vzdálených zdrojů.

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

Viz také