원격 원본에서 로드된 어셈블리가 .NET Framework 4 이상에서 완전 신뢰를 부여해야 하는지 여부를 지정합니다.
비고
Visual Studio 프로젝트 오류 목록의 오류 메시지 또는 빌드 오류로 인해 이 문서로 전달된 경우 방법: Visual Studio의 웹에서 어셈블리 사용
<구성>
<런타임>
<loadFromRemoteSources>
문법
<loadFromRemoteSources
enabled="true|false"/>
특성 및 요소
다음의 섹션은 특성, 자식 요소 및 부모 요소에 대해 설명합니다.
Attributes
| 특성 | Description |
|---|---|
enabled |
필수 특성입니다. 원격 원본에서 로드된 어셈블리에 완전 신뢰를 부여할지 여부를 지정합니다. |
enabled 특성
| 가치 | Description |
|---|---|
false |
원격 원본의 애플리케이션에 완전 신뢰를 부여하지 마세요. 기본값입니다. |
true |
원격 원본의 애플리케이션에 완전 신뢰를 부여합니다. |
자식 요소
없음.
부모 요소
| 요소 | Description |
|---|---|
configuration |
공용 언어 런타임 및 .NET Framework 애플리케이션에서 사용하는 모든 구성 파일의 루트 요소입니다. |
runtime |
런타임 초기화 옵션에 대한 정보를 포함합니다. |
비고
.NET Framework 3.5 및 이전 버전에서 원격 위치에서 어셈블리를 로드하는 경우 어셈블리의 코드는 로드되는 영역에 따라 달라지는 권한 부여 집합을 사용하여 부분 신뢰로 실행됩니다. 예를 들어 웹 사이트에서 어셈블리를 로드하는 경우 인터넷 영역에 로드되고 인터넷 사용 권한 집합이 부여됩니다. 즉, 인터넷 샌드박스에서 실행됩니다.
.NET Framework 4부터 CAS(코드 액세스 보안) 정책이 비활성화되고 어셈블리가 완전 신뢰로 로드됩니다. 일반적으로 이는 이전에 샌드박스가 적용된 메서드로 로드된 어셈블리에 Assembly.LoadFrom 대한 완전한 신뢰를 부여합니다. 이를 방지하기 위해 원격 소스에서 로드된 어셈블리에서 코드를 실행하는 기능은 기본적으로 사용하지 않도록 설정됩니다. 기본적으로 원격 어셈블리 FileLoadException 를 로드하려고 하면 다음과 같은 예외 메시지가 throw됩니다.
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.
어셈블리를 로드하고 해당 코드를 실행하려면 다음 중 하나를 수행해야 합니다.
어셈블리에 대한 샌드박스를 명시적으로 만듭니다( 방법: 샌드박스에서 부분적으로 신뢰할 수 있는 코드 실행 참조).
완전 신뢰로 어셈블리의 코드를 실행합니다. 요소를 구성하여 이 작업을 수행합니다
<loadFromRemoteSources>. 이전 버전의 .NET Framework에서 부분 신뢰로 실행되는 어셈블리가 이제 .NET Framework 4 이상 버전에서 완전 신뢰로 실행되도록 지정할 수 있습니다.
중요합니다
어셈블리가 완전 신뢰로 실행되지 않아야 하는 경우 이 구성 요소를 설정하지 마세요. 대신 어셈블리를 로드할 샌드박스 AppDomain 를 만듭니다.
요소의 <loadFromRemoteSources> 특성은 enabled CAS(코드 액세스 보안)를 사용하지 않도록 설정한 경우에만 적용됩니다. 기본적으로 CAS 정책은 .NET Framework 4 이상 버전에서 사용하지 않도록 설정됩니다. 설정 enabledtrue하면 원격 어셈블리에 완전 신뢰가 부여됩니다.
설정 trueFileLoadException 되지 않은 경우 enabled 다음 조건 중 하나에서 throw됩니다.
현재 도메인의 샌드박싱 동작은 .NET Framework 3.5의 동작과 다릅니다. 이렇게 하려면 CAS 정책을 사용하지 않도록 설정해야 하며 현재 도메인은 샌드박스에 추가되지 않습니다.
로드되는 어셈블리가 영역에서 온 것이 아닙니다
MyComputer.
이 예외가 <loadFromRemoteSources> throw되지 않도록 요소를 true 설정합니다. 이를 통해 보안을 위해 로드된 어셈블리를 샌드박스에 추가하는 데 공용 언어 런타임에 의존하지 않고 완전 신뢰로 실행할 수 있음을 지정할 수 있습니다.
비고
.NET Framework 4.5 이상 버전에서는 로컬 네트워크 공유(즉, 로컬 인트라넷 보안 영역)의 어셈블리가 기본적으로 완전 신뢰로 실행됩니다. 요소를 사용하도록 설정할
<loadFromRemoteSources>필요가 없습니다. 로컬 컴퓨터 또는 로컬 인트라넷 이외의 보안 영역의 경우 값을true.로 설정합니다.애플리케이션이 웹에서 복사된 경우 로컬 컴퓨터에 있는 경우에도 Windows에서 웹 애플리케이션으로 플래그가 지정됩니다. 파일 속성을 변경하여 해당 지정을 변경하거나 요소를 사용하여
<loadFromRemoteSources>어셈블리에 완전 신뢰를 부여할 수 있습니다. 또는 이 메서드를 UnsafeLoadFrom 사용하여 운영 체제가 웹에서 로드된 것으로 플래그가 지정된 로컬 어셈블리를 로드할 수 있습니다.Windows Virtual PC 애플리케이션에서 실행 중인 애플리케이션에서 가져올 FileLoadException 수 있습니다. 이 문제는 호스팅 컴퓨터의 연결된 폴더에서 파일을 로드하려고 할 때 발생할 수 있습니다. 원격 데스크톱 서비스 (터미널 서비스)를 통해 연결된 폴더에서 파일을 로드하려고 할 때도 발생할 수 있습니다. 예외를 방지하려면 .로 설정합니다
enabledtrue.
구성 파일
이 요소는 일반적으로 애플리케이션 구성 파일에서 사용되지만 컨텍스트에 따라 다른 구성 파일에서 사용할 수 있습니다. 자세한 내용은 .NET 보안 블로그 의 LOADFromRemoteSources에 대한 CAS 정책의 더 암시적 사용 문서를 참조하세요.
예시
다음 예제에서는 원격 원본에서 로드된 어셈블리에 완전 신뢰를 부여하는 방법을 보여 줍니다.
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
참고하십시오
.NET