<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 true
hodnotu , 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 natrue
.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
natrue
.
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>