Sdílet prostřednictvím


<loadFromRemoteSources> – element

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

Poznámka

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

<Konfigurace>
  <Runtime>
    <loadFromRemoteSources>

Syntax

<loadFromRemoteSources
   enabled="true|false"/>

Atributy a prvky

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

Atributy

Atribut Popis
enabled Požadovaný atribut.

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

atribut enabled

Hodnota Popis
false Neudělujte aplikacím ze vzdálených zdrojů úplný vztah důvěryhodnosti. Tato možnost je výchozí.
true Udělte aplikacím ze vzdálených zdrojů úplný vztah důvěryhodnosti.

Podřízené prvky

Žádné

Nadřazené prvky

Element Popis
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

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

Počínaje rozhraním .NET Framework 4 jsou zásady zabezpečení přístupu kódu (CAS) zakázány a sestavení jsou načtena v plném vztahu důvěryhodnosti. Obvykle by to udělilo úplný vztah důvěryhodnosti sestavením načteným metodou Assembly.LoadFrom , která byla dříve v izolovaném prostoru (sandbox). Chcete-li tomu zabránit, možnost spouštět kód v sestaveních načtených ze vzdáleného zdroje je ve výchozím nastavení zakázána. Pokud se ve výchozím nastavení pokusíte načíst vzdálené sestavení, FileLoadException vyvolá se zpráva o výjimce podobná 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.

Chcete-li 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ém vztahu důvěryhodnosti v rozhraní .NET Framework 4 a novějších verzích.

Důležité

Pokud sestavení nemá běžet s úplným vztahem důvěryhodnosti, nenastavujte tento element konfigurace. Místo toho vytvořte sandbox, AppDomain ve kterém se má načíst sestavení.

Atribut enabled elementu <loadFromRemoteSources> je účinný 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 v rozhraní .NET Framework 4 a novějších verzích zakázané. Pokud nastavíte enabled na true, vzdáleným sestavením se udělí úplný vztah důvěryhodnosti.

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

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

  • Načítané sestavení nepocházet ze MyComputer zóny.

Nastavení elementu <loadFromRemoteSources> na true zabrání vyvolání této výjimky. Umožňuje vám určit, že se do izolovaného prostoru načtených sestavení z důvodu zabezpečení nespoléháte na modul CLR (Common Language Runtime) a že může být povoleno jejich spouštění s úplným vztahem důvěryhodnosti.

Poznámky

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

  • Pokud byla aplikace zkopírována z webu, je systémem Windows označena jako webová aplikace, a to i v případě, že se nachází v místním počítači. Toto označení můžete změnit změnou vlastností souboru nebo můžete použít <loadFromRemoteSources> element k udělení úplného vztahu důvěryhodnosti sestavení. Alternativně 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 v FileLoadException aplikaci, která je spuštěna 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 tomu dojít také při pokusu o načtení souboru ze složky propojené přes Vzdálenou plochu (Terminálová služba). Pokud se chcete výjimce vyhnout, nastavte enabled na true.

Konfigurační soubor

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

Příklad

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

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

Viz také