Поделиться через


<Элемент loadFromRemoteSources>

Указывает, следует ли предоставлять сборкам, загруженным из удаленных источников, полное доверие в платформа .NET Framework 4 и более поздних версий.

Примечание

Если вы были перенаправлены к этой статье из-за сообщения об ошибке в списке ошибок проекта Visual Studio или ошибки сборки, см. статью Практическое руководство. Использование сборки из Интернета в Visual Studio.

<Конфигурации>
  <Среды выполнения>
    <loadFromRemoteSources>

Синтаксис

<loadFromRemoteSources
   enabled="true|false"/>

Элементы и атрибуты

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Описание
enabled Обязательный атрибут.

Указывает, должно ли быть предоставлено полное доверие сборке, загруженной из удаленного источника.

атрибут enabled

Значение Описание
false Не предоставляйте полное доверие приложениям из удаленных источников. Это значение по умолчанию.
true Предоставление полного доверия приложениям из удаленных источников.

Дочерние элементы

Отсутствует.

Родительские элементы

Элемент Описание
configuration Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями .NET Framework.
runtime Содержит сведения о параметрах инициализации среды выполнения.

Комментарии

В платформа .NET Framework 3.5 и более ранних версиях при загрузке сборки из удаленного расположения код в сборке выполняется с частичным доверием с набором разрешений, зависящим от зоны, из которой она загружена. Например, при загрузке сборки с веб-сайта она загружается в зону Интернета и предоставляется набор разрешений Интернета. Другими словами, он выполняется в интернет-песочнице.

Начиная с платформа .NET Framework 4, политика безопасности доступа к коду (CAS) отключена, а сборки загружаются с полным доверием. Как правило, это дает полное доверие сборкам, загруженным с Assembly.LoadFrom помощью метода , который ранее был изолирован. Чтобы избежать этого, возможность выполнения кода в сборках, загруженных из удаленного источника, по умолчанию отключена. По умолчанию при попытке загрузить удаленную сборку FileLoadException возникает исключение с таким сообщением:

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 , в которую будет загружаться сборка.

Атрибут enabled для <loadFromRemoteSources> элемента действует только в том случае, если безопасность доступа к коду (CAS) отключена. По умолчанию политика CAS отключена в платформа .NET Framework 4 и более поздних версиях. Если задано значение enabledtrue, удаленным сборкам предоставляется полное доверие.

Если enabled для не задано значение true, FileLoadException возникает исключение при любом из следующих условий:

  • Поведение песочницы текущего домена отличается от поведения в платформа .NET Framework 3.5. Для этого необходимо отключить политику cas-доступа, а текущий домен — не изолированный.

  • Загружаемая сборка не MyComputer из зоны.

Если задать <loadFromRemoteSources> для элемента значение , true это исключение не будет создано. Это позволяет указать, что вы не полагаетесь на среду CLR для обеспечения безопасности загруженных сборок и что они могут выполняться в режиме полного доверия.

Примечания

  • В платформа .NET Framework 4.5 и более поздних версиях сборки в общих локальных сетевых ресурсах (т. е. в зоне безопасности местной интрасети) по умолчанию выполняются с полным доверием; включать элемент не требуется<loadFromRemoteSources>. Для зон безопасности, отличных от "Локальный компьютер" или "Местная интрасеть", задайте значение true.

  • Если приложение скопировано из Интернета, оно помечается ОС Windows как веб-приложение, даже если находится на локальном компьютере. Вы можете изменить это обозначение, изменив его свойства файла, или использовать <loadFromRemoteSources> элемент , чтобы предоставить сборке полное доверие. Также можно использовать метод UnsafeLoadFrom, чтобы загрузить локальную сборку, которую операционная система пометила как загруженную из Интернета.

  • Вы можете получить FileLoadException в приложении, работающем в приложении Виртуального компьютера Windows. Это может произойти при попытке загрузить файл из связанных папок на хост-компьютере. Это также может произойти при попытке загрузить файл из папки, связанной через службы удаленных рабочих столов (службы терминалов). Чтобы избежать исключения, задайте для значение enabledtrue.

Файл конфигурации

Этот элемент обычно используется в файле конфигурации приложения, но может использоваться в других файлах конфигурации в зависимости от контекста. Дополнительные сведения см. в статье Больше неявного использования политики CAS: loadFromRemoteSources блога .NET Security.

Пример

В следующем примере показано, как предоставить полное доверие сборкам, загруженным из удаленных источников.

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

См. также раздел