<loadFromRemoteSources-Element>

Gibt an, ob Assemblys, die aus Remotequellen geladen wurden, in .NET Framework 4 und höher voll vertrauenswürdig sein sollen.

Hinweis

Wenn Sie zu diesem Artikel wegen einer Fehlermeldung in der Visual Studio-Projektfehlerliste oder einem Buildfehler weitergeleitet wurden, lesen Sie "How to: Use an Assembly from the Web in Visual Studio".

<Konfiguration>
  <Laufzeit>
    <loadFromRemoteSources>

Syntax

<loadFromRemoteSources
   enabled="true|false"/>  

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

attribute Beschreibung
enabled Erforderliches Attribut.

Gibt an, ob eine Assembly, die aus einer Remotequelle geladen wird, voll vertrauenswürdig sein soll.

aktiviertes Attribut

Wert Beschreibung
false Gewähren Sie keine vollständige Vertrauenswürdigstellung für Anwendungen aus Remotequellen. Dies ist die Standardeinstellung.
true Gewähren Sie voll vertrauenswürdigen Anwendungen aus Remotequellen.

Untergeordnete Elemente

Keine

Übergeordnete Elemente

Element BESCHREIBUNG
configuration Das Stammelement in jeder von den Common Language Runtime- und .NET Framework-Anwendungen verwendeten Konfigurationsdatei.
runtime Enthält Informationen über Laufzeitinitialisierungsoptionen.

Hinweise

Wenn Sie in den versionen .NET Framework 3.5 und früheren Versionen eine Assembly von einem Remotespeicherort laden, wird code in der Assembly teilweise vertrauenswürdig mit einem Grant-Satz ausgeführt, der von der Zone abhängt, von der sie geladen wird. Wenn Sie beispielsweise eine Assembly von einer Website laden, wird sie in die Internetzone geladen und dem Internetberechtigungssatz erteilt. Mit anderen Worten, es wird in einem Internet-Sandkasten ausgeführt.

Ab dem .NET Framework 4 ist die Cas-Richtlinie (Code Access Security) deaktiviert, und Assemblys werden voll vertrauenswürdig geladen. Ordinarily, this would grant full trust to assemblys loaded with the Assembly.LoadFrom method that been been sandboxed. Um dies zu verhindern, ist die Möglichkeit, Code in Assemblys auszuführen, die von einer Remotequelle geladen wurden, standardmäßig deaktiviert. Wenn Sie versuchen, eine Remoteassembly zu laden, wird standardmäßig eine FileLoadException Ausnahmemeldung wie folgt ausgelöst:

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.

Um die Assembly zu laden und den Code auszuführen, müssen Sie entweder:

  • Erstellen Sie explizit eine Sandkasten für die Assembly (siehe Vorgehensweise: Ausführen teilweise vertrauenswürdiger Code in einem Sandkasten).

  • Führen Sie den Code der Assembly voll vertrauenswürdig aus. Dazu konfigurieren Sie das <loadFromRemoteSources> Element. Sie können angeben, dass die Assemblys, die in früheren Versionen der .NET Framework in teilweiser Vertrauenswürdigkeit ausgeführt werden, jetzt voll vertrauenswürdig in den versionen .NET Framework 4 und höher ausgeführt werden.

Wichtig

Wenn die Assembly nicht voll vertrauenswürdig ausgeführt werden soll, legen Sie dieses Konfigurationselement nicht fest. Erstellen Sie stattdessen einen Sandkasten AppDomain , in dem die Assembly geladen werden soll.

Das enabled Attribut für das <loadFromRemoteSources> Element ist nur wirksam, wenn die Codezugriffssicherheit (CAS) deaktiviert ist. Standardmäßig ist die CAS-Richtlinie in den versionen .NET Framework 4 und höher deaktiviert. Wenn Sie festlegen enabledtrue, werden Remoteassemblys voll vertrauenswürdig erteilt.

Wenn enabled dieser Wert nicht festgelegt trueist, wird eine FileLoadException unter den folgenden Bedingungen ausgelöst:

  • Das Sandkastenverhalten der aktuellen Domäne unterscheidet sich von seinem Verhalten in .NET Framework 3.5. Dies erfordert, dass DIE CAS-Richtlinie deaktiviert ist und die aktuelle Domäne nicht sandkastenfähig ist.

  • Die geladene Assembly stammt nicht aus der MyComputer Zone.

Festlegen des <loadFromRemoteSources> Elements, um zu true verhindern, dass diese Ausnahme ausgelöst wird. Sie können angeben, dass Sie sich nicht auf die allgemeine Sprachlaufzeit verlassen, um die geladenen Assemblys für Sicherheit zu sandkastenn, und dass sie in voller Vertrauenswürdigheit ausgeführt werden können.

Hinweise

  • In den versionen .NET Framework 4.5 und höher werden Assemblys in lokalen Netzwerkfreigaben standardmäßig voll vertrauenswürdig ausgeführt. Sie müssen das <loadFromRemoteSources> Element nicht aktivieren.

  • Wenn eine Anwendung aus dem Web kopiert wurde, wird sie von Windows als Webanwendung gekennzeichnet, auch wenn sie sich auf dem lokalen Computer befindet. Sie können diese Bezeichnung ändern, indem Sie die Dateieigenschaften ändern, oder Sie können das <loadFromRemoteSources> Element verwenden, um der Assembly voll vertrauenswürdig zu gewähren. Alternativ können Sie die UnsafeLoadFrom Methode verwenden, um eine lokale Assembly zu laden, die vom Betriebssystem als aus dem Web geladen wurde.

  • Möglicherweise erhalten Sie eine FileLoadException Anwendung, die in einer Windows Virtual PC-Anwendung ausgeführt wird. Dies kann passieren, wenn Sie versuchen, eine Datei aus verknüpften Ordnern auf dem Hostingcomputer zu laden. Es kann auch auftreten, wenn Sie versuchen, eine Datei aus einem Ordner zu laden, der über Remotedesktopdienste (Terminaldienste ) verknüpft ist. Um die Ausnahme zu vermeiden, legen Sie auf enabledtrue.

Konfigurationsdatei

Dieses Element wird in der Regel in der Anwendungskonfigurationsdatei verwendet, kann jedoch abhängig vom Kontext in anderen Konfigurationsdateien verwendet werden. Weitere Informationen finden Sie im Artikel Weitere implizite Verwendung von CAS-Richtlinien: loadFromRemoteSources im .NET Security-Blog.

Beispiel

Das folgende Beispiel zeigt, wie Sie Assemblys, die aus Remotequellen geladen wurden, voll vertrauenswürdig sind.

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

Siehe auch