<loadFromRemoteSources > 要素<loadFromRemoteSources> element

リモートソースから読み込まれたアセンブリに .NET Framework 4 以降で完全信頼を付与するかどうかを指定します。Specifies whether assemblies loaded from remote sources should be granted full trust in .NET Framework 4 and later.

注意

Visual Studio プロジェクトの [エラー一覧] またはビルドエラーのエラーメッセージが原因でこの記事にリダイレクトされた場合は、「方法:Visual Studioで Web からのアセンブリを使用します。If you were directed to this article because of an error message in the Visual Studio project error list or a build error, see How to: Use an Assembly from the Web in Visual Studio.

<configuration> <configuration>
   <ランタイム >   <runtime>
     <loadFromRemoteSources >    <loadFromRemoteSources>

構文Syntax

<loadFromRemoteSources    
   enabled="true|false"/>  

属性と要素Attributes and elements

以降のセクションでは、属性、子要素、および親要素について説明します。The following sections describe attributes, child elements, and parent elements.

属性Attributes

属性Attribute 説明Description
enabled 必須の属性です。Required attribute.

リモートソースから読み込まれたアセンブリに完全信頼を付与するかどうかを指定します。Specifies whether an assembly that is loaded from a remote source should be granted full trust.

enabled 属性enabled attribute

Value 説明Description
false リモートソースからアプリケーションへの完全な信頼を付与しないでください。Do not grant full trust to applications from remote sources. 既定値です。This is the default.
true リモートソースからアプリケーションへの完全な信頼を付与します。Grant full trust to applications from remote sources.

子要素Child elements

なし。None.

親要素Parent elements

要素Element 説明Description
configuration 共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime ランタイム初期化オプションに関する情報を含んでいます。Contains information about runtime initialization options.

RemarksRemarks

.NET Framework 3.5 以前のバージョンでは、リモートの場所からアセンブリを読み込む場合、アセンブリ内のコードは、読み込み元のゾーンに依存する許可セットを使用して部分信頼で実行されます。In the .NET Framework 3.5 and earlier versions, if you load an assembly from a remote location, code in the assembly runs in partial trust with a grant set that depends on the zone from which it is loaded. たとえば、web サイトからアセンブリを読み込むと、インターネットゾーンに読み込まれ、インターネットのアクセス許可セットが付与されます。For example, if you load an assembly from a website, it is loaded into the Internet zone and granted the Internet permission set. つまり、インターネットサンドボックスで実行されます。In other words, it executes in an Internet sandbox.

.NET Framework 4 以降では、コードアクセスセキュリティ (CAS) ポリシーが無効になり、アセンブリが完全信頼で読み込まれます。Starting with the .NET Framework 4, code access security (CAS) policy is disabled and assemblies are loaded in full trust. 通常、これは、以前にサンドボックス化されAssembly.LoadFromたメソッドで読み込まれたアセンブリに対して完全な信頼を付与します。Ordinarily, this would grant full trust to assemblies loaded with the Assembly.LoadFrom method that previously had been sandboxed. これを回避するために、リモートソースから読み込まれたアセンブリ内のコードを実行する機能は、既定では無効になっています。To prevent this, the ability to run code in assemblies loaded from a remote source is disabled by default. 既定では、リモートアセンブリを読み込もうとすると、次FileLoadExceptionのような例外メッセージを含むがスローされます。By default, if you attempt to load a remote assembly, a FileLoadException with an exception message like the following is thrown:

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. 

アセンブリを読み込んでコードを実行するには、次のいずれかを行う必要があります。To load the assembly and execute its code, you must either:

  • アセンブリのサンドボックスを明示的に作成します (「方法:サンドボックスで部分信頼コードを実行します)。Explicitly create a sandbox for the assembly (see How to: Run Partially Trusted Code in a Sandbox).

  • アセンブリのコードを完全信頼で実行します。Run the assembly's code in full trust. これを行うには、 <loadFromRemoteSources>要素を構成します。You do this by configuring the <loadFromRemoteSources> element. 以前のバージョンの .NET Framework で部分信頼で実行されるアセンブリが、.NET Framework 4 以降のバージョンで完全信頼で実行されるように指定できます。It lets you specify that the assemblies that run in partial trust in earlier versions of the .NET Framework now run in full trust in the .NET Framework 4 and later versions.

重要

アセンブリを完全信頼で実行しない場合は、この構成要素を設定しないでください。If the assembly should not run in full trust, do not set this configuration element. 代わりに、アセンブリを読みAppDomain込むためのサンドボックスを作成します。Instead, create a sandboxed AppDomain in which to load the assembly.

要素の属性は、 enabledコードアクセスセキュリティ (CAS) が無効になっている場合にのみ有効です。 <loadFromRemoteSources>The enabled attribute for the <loadFromRemoteSources> element is effective only when code access security (CAS) is disabled. 既定では、CAS ポリシーは .NET Framework 4 以降のバージョンで無効になっています。By default, CAS policy is disabled in the .NET Framework 4 and later versions. をにenabled true設定した場合、リモートアセンブリには完全な信頼が付与されます。If you set enabled to true, remote assemblies are granted full trust.

enabledtrue設定されていない場合は、次のいずれかの条件でがスローFileLoadExceptionされます。If enabled is not set to true, a FileLoadException is thrown under the either of the following conditions:

  • 現在のドメインのサンドボックスの動作は、.NET Framework 3.5 の動作とは異なります。The sandboxing behavior of the current domain is different from its behavior in the .NET Framework 3.5. これには、CAS ポリシーを無効にし、現在のドメインをサンドボックス化しないようにする必要があります。This requires CAS policy to be disabled, and the current domain not to be sandboxed.

  • 読み込まれているアセンブリがMyComputerゾーンからのものではありません。The assembly being loaded is not from the MyComputer zone.

要素を<loadFromRemoteSources>に設定trueすると、この例外はスローされません。Setting the <loadFromRemoteSources> element to true prevents this exception from being thrown. これにより、共通言語ランタイムに依存しないように指定して、読み込まれたアセンブリのセキュリティをサンドボックス化することができます。また、完全信頼での実行を許可することもできます。It enables you to specify that you are not relying on the common language runtime to sandbox the loaded assemblies for security, and that they can be allowed to execute in full trust.

メモNotes

  • .NET Framework 4.5 以降のバージョンでは、ローカルネットワーク共有上のアセンブリは既定で完全信頼で実行されます。<loadFromRemoteSources>要素を有効にする必要はありません。In the .NET Framework 4.5 and later versions, assemblies on local network shares run in full trust by default; you do not have to enable the <loadFromRemoteSources> element.

  • アプリケーションが web からコピーされた場合、ローカルコンピューターに存在する場合でも、web アプリケーションとして Windows によってフラグが設定されます。If an application has been copied from the web, it is flagged by Windows as being a web application, even if it resides on the local computer. そのようなファイルのプロパティを変更することで、その指定を変更<loadFromRemoteSources>できます。また、要素を使用して、アセンブリに完全信頼を付与することもできます。You can change that designation by changing its file properties, or you can use the <loadFromRemoteSources> element to grant the assembly full trust. 別のUnsafeLoadFrom方法として、メソッドを使用して、オペレーティングシステムによって web から読み込まれたとしてフラグが設定されているローカルアセンブリを読み込むことができます。As an alternative, you can use the UnsafeLoadFrom method to load a local assembly that the operating system has flagged as having been loaded from the web.

  • Windows 仮想 PC アプリケーションFileLoadExceptionで実行されているアプリケーションで、が取得される場合があります。You may get a FileLoadException in an application that is running in a Windows Virtual PC application. これは、ホストコンピューター上のリンクフォルダーからファイルを読み込もうとした場合に発生する可能性があります。This can happen when you try to load a file from linked folders on the hosting computer. また、リモートデスクトップサービス(ターミナルサービス) にリンクされているフォルダーからファイルを読み込もうとした場合にも発生することがあります。It can also occur when you try to load a file from a folder linked over Remote Desktop Services (Terminal Services). この例外を回避するにenabledtrue、をに設定します。To avoid the exception, set enabled to true.

構成ファイルConfiguration file

この要素は通常、アプリケーション構成ファイルで使用されますが、コンテキストに応じて他の構成ファイルで使用することもできます。This element is typically used in the application configuration file, but can be used in other configuration files depending upon the context. 詳細については、.NET セキュリティブログの「 CAS Policy: loadFromRemoteSources の暗黙的な使用方法」を参照してください。For more information, see the article More Implicit Uses of CAS Policy: loadFromRemoteSources in the .NET Security blog.

Example

次の例は、リモートソースから読み込まれたアセンブリに完全信頼を付与する方法を示しています。The following example shows how to grant full trust to assemblies loaded from remote sources.

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

関連項目See also