<loadFromRemoteSources> – element

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 kvůli 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 má být uděleno úplné důvěryhodnosti sestavení načtené ze vzdáleného zdroje.

atribut enabled

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

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

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, spustí se 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é důvěryhodnosti. Obvykle by to udělovalo úplnou důvěryhodnost sestavením načteným s metodou Assembly.LoadFrom , která byla dříve v izolovaném prostoru (sandbox). Pokud tomu chcete 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, jako je 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:

  • 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é důvěryhodnosti. Uděláte to tak <loadFromRemoteSources> , že nakonfigurujete prvek. 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ěžet v plném vztahu 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 zakázané v rozhraní .NET Framework 4 a novějších verzích. Pokud nastavíte enabled hodnotu true, vzdáleným sestavením se udělí úplný vztah důvěryhodnosti.

Pokud enabled není nastavená hodnota true, 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).

  • Načtené sestavení není ze MyComputer zóny.

Nastavením elementu <loadFromRemoteSources> zabráníte true vyvolání této výjimky. Umožňuje určit, že se nespoléháte na modul CLR (Common Language Runtime) do sandboxu načtených sestavení pro zabezpečení a že je možné je spustit 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ě spouští ve výchozím nastavení v plném vztahu důvěryhodnosti; tento prvek není nutné povolit <loadFromRemoteSources> .

  • Pokud byla aplikace zkopírována z webu, systém Windows ji označí příznakem jako webovou aplikaci, 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 jeho vlastností souboru nebo můžete pomocí <loadFromRemoteSources> prvku 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á je spuštěná v aplikaci Windows Virtual PC. K tomu může dojít při pokusu o načtení souboru z propojených složek na hostitelském počítači. Může také nastat, když se pokusíte načíst soubor ze složky propojené přes Vzdálenou plochu (Terminálová služba). Chcete-li se vyhnout výjimce, nastavte na enabledtruehodnotu .

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.

Příklad

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

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

Viz také