<loadFromRemoteSources> – element

Určuje, jestli se sestavení načtená ze vzdálených zdrojů mají udělit úplnému vztahu důvěryhodnosti v .NET Framework 4 a novějších verzích.

Poznámka

Pokud jste byli přesměrováni na tento článek kvůli chybové zprávě v seznamu chyb projektu Visual Studio nebo chybě sestavení, podívejte se na článek Postupy:Použití sestavení z webu v nástroji Visual Studio .

<configuration>
  <runtime>
    <loadFromRemoteSources>

Syntax

<loadFromRemoteSources
   enabled="true|false"/>  

Atributy a elementy

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

Atributy

Atribut Popis
enabled Požadovaný atribut.

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

enabled – atribut

Hodnota Popis
false Neudělovat 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

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

Počínaje aktualizací .NET Framework 4 jsou zásady zabezpečení přístupu kódu (CAS) zakázané a sestavení se načítá v plné důvěryhodnosti. Obvykle by se tím uděloval úplný vztah důvěryhodnosti k sestavením načteným Assembly.LoadFrom metodou, která byla dříve v izolovaném prostoru (sandboxu). Chcete-li tomu zabránit, je ve výchozím nastavení zakázána možnost spouštění kódu 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í, vyvolá se zpráva s výjimkou, jako FileLoadException je tato:

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:

  • 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. To můžete provést konfigurací <loadFromRemoteSources> elementu . Umožňuje určit, že sestavení, která běží v částečném vztahu důvěryhodnosti v dřívějších verzích .NET Framework, teď běží v úplném vztahu důvěryhodnosti v .NET Framework 4 a novějších verzích.

Důležité

Pokud sestavení nesmí být spuštěno v úplném vztahu důvěryhodnosti, nenastavovat tento element konfigurace. Místo toho vytvořte sandbox, AppDomain ve kterém chcete načíst sestavení.

Atribut elementu je efektivní jenom v případě, že je zakázané zabezpečení přístupu enabled <loadFromRemoteSources> kódu (CAS). Ve výchozím nastavení jsou zásady CAS ve verzi .NET Framework 4 a novější. Pokud nastavíte enabled na true , vzdálená sestavení mají udělen úplný vztah důvěryhodnosti.

Pokud enabled není nastavená true na , je FileLoadException vyvolána za jedné z následujících podmínek:

  • Chování aktuální domény v sandboxu se liší od jejího chování v .NET Framework 3.5. To vyžaduje, aby se zakázala zásada CAS a aktuální doména nebyla izolovaná v izolovaném prostoru.

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

Nastavením <loadFromRemoteSources> elementu na true zabráníte vyvolání této výjimky. Umožňuje určit, že nespoléháte na modul CLR (Common Language Runtime) pro sandbox načtená sestavení pro zabezpečení a že mohou být smět provádět v plné důvěryhodnosti.

Poznámky

  • Ve verzi .NET Framework 4.5 a novějších verzích běží sestavení ve sdílených síťových sdílených složek ve výchozím nastavení v úplném vztahu důvěryhodnosti. není k povolení <loadFromRemoteSources> elementu.

  • Pokud byla aplikace zkopírována z webu, je označena Windows jako webová aplikace, i když 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í elementu udělit <loadFromRemoteSources> sestavení úplný vztah důvěryhodnosti. Alternativně můžete pomocí metody načíst místní sestavení, které operační systém ořídl jako načtené UnsafeLoadFrom z webu.

  • Můžete získat v FileLoadException aplikaci, která běží 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 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 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 na blogu o zabezpečení .NET.

Příklad

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

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

Viz také