Элемент trust (схема параметров ASP.NET)

Задает применяемый к приложению уровень управления доступом для кода (CAS). Этот элемент следует использовать для выполнения веб-приложений, уровень доверия для которых ниже Full.

<trust 
   hostSecurityPolicyResolverType ="security policy resolution type"
   legacyCasModel = "[True|False]"
   level="[Full|High|Medium|Low|Minimal]" 
   originUrl="URL"
   permissionSetName = "name of the permission set"
   processRequestInApplicationTrust = "[True|False]" 
/>

Атрибуты и элементы

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

Атрибуты

Атрибут

Описание

hostSecurityPolicyResolverType

Необязательный строковый атрибут.

Задает пользовательский тип разрешения политики безопасности. Если этот атрибут равен пустой строке, для определения разрешений сборки ASP.NET использует политику по умолчанию. Политика по умолчанию для оценки разрешений предоставляет полное доверие для сборок глобального кэша сборок (GAC) и частичное доверие для других сборок.

Для этого атрибута нельзя задать значение null.

Значением по умолчанию является пустой объект string.

legacyCasModel

Необязательный атрибут логического типа.

Указывает, включено ли управление доступом для кода прежних версий (CAS).

При включении безопасности доступа к устаревшему коду применяются следующие правила безопасности:

  • Политика разграничения доступа кода устанавливается из комбинации политики компьютера и указанного файла политики частичного доверия ASP.NET.

  • Домены приложения с частичным доверием приобретают полное доверие на уровне домена приложения.

  • Устаревшие частично надежные файлы, расположенные в каталоге CONFIG каталога установки .NET Framework, используются вместо новых частично надежных файлов конфигурации, которые находятся в том же каталоге. Устаревшие файлы включают условия членства, которые используются в .NET Framework 1.1 и .NET Framework 2.0 с пакетом обновления 1 (SP1).

  • Для оценки разрешений применяются условия дополнительного членства. Эти условия определены в файлах ASP.NET с частичным доверием. Каталог CONFIG, поставляемый с выпуском .NET Framework 4, содержит файлы устаревшей политики частичного доверия. В именах этих файлов имеется подстрока "legacy", а сами они содержат секции .NET Framework 2.0 с пакетом обновления 1 (SP1). Эти секции содержат непустые условия членства, необходимые для оценки политики разграничения доступа кода применительно к сборкам.

  • Если приложение ASP.NET выполняется в режиме частичного доверия, и файл политики безопасности для уровня доверия сопоставляется с одним из файлов конфигурации частичного доверия по умолчанию, то ASP.NET автоматически выбирает соответствующий файл конфигурации прежних версий. Например, если политика безопасности обычно загружается из файла Web_mediumtrust.config, то в режиме поддержки предыдущих версий ASP.NET будет загружать политику безопасности из файла Legacy.web_mediumtrust.config.

Значение по умолчанию — false.

level

Обязательный атрибут элемента String.

Задает уровень доверия, с которым будет выполняться приложение. Каждый уровень доверия сопоставляется отдельной политике XML с помощью элемента trustLevel в файле конфигурации. В файле политики перечисляется набор разрешений, предоставляемых каждым уровнем доверия. Дополнительные сведения о ASP.NET и файлах политики см. в разделе Уровни доверия и файлы политик ASP.NET.

Значение атрибута может задаваться пользователем, если в элементе trustLevel элемента Элемент securityPolicy (схема параметров ASP.NET) определено соответствующее сопоставление политики безопасности. Также атрибут может иметь одно из следующих возможных значений (в порядке возрастания строгости ограничений).

ЗначениеОписание
Full Устанавливает неограниченные разрешения.Предоставляет приложению ASP.NET разрешения на доступ к любому ресурсу, управляемому механизмами безопасности операционной системы.Поддерживаются все привилегированные операции.Эта настройка называется Unrestricted в перечислении AspNetHostingPermissionLevel.
High Устанавливает высокий уровень управления доступом для кода, при котором приложение по умолчанию не может выполнять следующие операции:
  • Вызов неуправляемого кода.

  • Вызов компонентов служб.

  • Запись в журнал событий.

  • Обращение к очередям службы очередей сообщений Майкрософт.

  • Доступ к источникам данных ODBC, OleDb или Oracle.

Medium Устанавливает средний уровень управления доступом для кода, при котором приложение ASP.NET по умолчанию не может выполнять следующие операции (в дополнение к ограничениям для уровня High):
  • Обращение к файлам, располагающимся вне каталога приложения.

  • Доступ к реестру.

  • Выполнение сетевых вызовов и вызовов веб-службы (например с помощью класса System.Net.HttpWebRequest).

Low Устанавливает низкий уровень управления доступом для кода, при котором приложение ASP.NET по умолчанию не может выполнять следующие операции (в дополнение к ограничениям для уровня Medium):
  • Запись в файловую систему.

  • Вызовите метод Assert.

Minimal Устанавливает минимальный уровень управления доступом для кода, при котором приложению назначаются только разрешения на выполнение.

По умолчанию используется значение Full (без ограничений).

originUrl

Необязательный атрибут элемента String.

Задает URL-адрес, используемый с ограниченным разрешением WebPermission, которое настроено в уровне доверия Medium. Если этот атрибут присутствует, он может использоваться в некоторых классах, например HttpWebRequest, которые допускают подключение только к конкретным URL-адресам, определяемым разрешением WebPermission. Это позволяет корректно работать разрешениям, основывающимся на понятии о хосте.

permissionSetName

Необязательный строковый атрибут.

Задает имя набора разрешений.

Значение по умолчанию равно ASP.Net.

processRequestInApplicationTrust

Необязательный атрибут элемента Boolean.

Задает, выполняется ли автоматическое ограничение запросов страницы с использованием разрешений, настроенных в файле политики доверия для приложения ASP.NET.

Файлы политики доверия задаются в элементах trustLevel элемента securityPolicy. Чтобы применить единую политику доверия к приложению ASP.NET, следует использовать атрибут level элемента trust.

Если установлено значение False, запросы ASP.NET могут потенциально выполняться с уровнем доверия Full, даже если с помощью атрибута level установлен другой уровень. Не рекомендуется без особой необходимости изменять значение по умолчанию (true) этого атрибута.

Этот атрибут не использовался до .NET Framework версии 2.0.

Значение по умолчанию — True.

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

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

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

Элемент

Описание

configuration

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

system.web

Задает корневой элемент для параметров конфигурации ASP.NET в файле конфигурации и содержит элементы конфигурации для настройки веб-приложений ASP.NET и управления работой этих приложений.

Заметки

Элемент trust задает применяемый к приложению уровень управления доступом для кода (CAS). Файлы политики безопасности сопоставляются с именами уровней доверия в элементе коллекции securityPolicy. В файле политики перечисляется набор разрешений, предоставляемых уровнем доверия. Элемент trust указывает на уровень доверия, применяемый к приложению ASP.NET. Дополнительные сведения о ASP.NET и файлах политики см. в разделе Уровни доверия и файлы политик ASP.NET.

По умолчанию веб-приложения выполняются с уровнем доверия Full. Приложениям с уровнем доверия Full в соответствии с политикой управления доступом для кода предоставляются неограниченные разрешения доступа. К этим разрешениям относятся встроенные системные и пользовательские разрешения. Это означает, что в соответствии с уровнем управления доступом для кода приложению будет разрешен доступ к любым защищенным ресурсам. Возможность доступа к ресурсу определяется исключительно уровнем безопасности, установленным в операционной системе. Приложение, для которого установлен отличающийся от Full уровень доверия, называется приложением с неполным доверием. Приложения с неполным доверием обладают ограниченными разрешениями на доступ приложения к защищенным ресурсам.

Для повышения безопасности в размещенной среде следует использовать элемент location в корневом файле Web.config, чтобы включить элементы securityPolicy и trust для размещаемых приложений, а также атрибут allowOverride="False", чтобы предотвратить переопределение приложением настроек в локальном файле Web.config. Чтобы настроить разные уровни доверия для разных размещаемых приложений, можно использовать элементы с различными атрибутами пути, расположенные в различных местах. Пример такого рода конфигурации см. далее в разделе "Пример".

ПримечаниеПримечание

Веб-приложения, построенные на платформе .NET Framework версии 1.0 всегда выполняются с уровнем доверия Full, поскольку для типов в System.Web требуются вызывающие объекты с полным уровнем доверия.При обновлении до более поздней версии .NET Framework не рекомендуется изменять уровень доверия без предварительного тестирования любых ранее существовавших приложений.

Параметры по умолчанию

В корневом файле Web.config задается следующий элемент по умолчанию trust.

<location allowOverride="true">
<system.web>
   <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low" policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
   </securityPolicy>
   <trust 
      level="Full" 
      originUrl="" 
      processRequestInApplicationTrust="true" 
   />
</system.web>
</location>

Пример

В следующем примере используется корневой файл Web.config для установки уровня доверия Medium для всех приложений ASP.NET, а также серверный элемент location для блокировки настроек. Другой элемент location в том же файле конфигурации используется, чтобы переопределить настройки в корневом файле Web.config настройками в файле Web.config приложения Default Web Site/Temp.

<location allowOverride="false">
  <system.web>
    <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low"  policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
    </securityPolicy>
  </system.web>
</location>

<location allowOverride="false">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

<location allowOverride="true" path="Default Web Site/Temp">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

Сведения об элементе

Обработчик раздела конфигурации

TrustSection

Элемент конфигурации

AspNetHostingPermission

Настраиваемые расположения

Machine.config

Файл Web.config корневого уровня

Файл Web.config уровня приложения

Требования

Microsoft IIS версии 5.0, 5.1 или 6.0

.NET Framework версии 1.0, 1.1 или 2.0

Microsoft Visual Studio 2003 или Visual Studio 2005

См. также

Задачи

Практическое руководство. Настройка отдельных каталогов с помощью параметров расположения

Пошаговое руководство. Отключение параметров конфигурации ASP.NET

Ссылки

Элемент system.web (схема параметров ASP.NET)

Элемент configuration (схема общих параметров)

Элемент trustLevel для элемента securityPolicy (схема параметров ASP.NET)

Элемент securityPolicy (схема параметров ASP.NET)

System.Configuration

System.Net.Configuration

TrustSection

AspNetHostingPermission

Основные понятия

Уровни доверия и файлы политик ASP.NET

Уровни доверия и файлы политик ASP.NET

Администрирование политики безопасности

Настройка обеспечения безопасности ASP.NET

Сценарии конфигурации ASP.NET

Другие ресурсы

Безопасность веб-приложений ASP.NET

Общие параметры конфигурации (ASP.NET)

Параметры конфигурации ASP.NET

Администрирование веб-сайта ASP.NET

Файлы конфигурации ASP.NET

Конфигурационный API-интерфейс настройки ASP.NET