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

Обновлен: Ноябрь 2007

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

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

 <trust
     level="[Full|High|Medium|Low|Minimal]"
     originUrl="URL"
    processRequestInApplicationTrust = "[True|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. Это позволяет корректно работать разрешениям, основывающимся на понятии о хосте.

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. Чтобы настроить разные уровни доверия для разных размещаемых приложений, можно использовать элементы с различными атрибутами пути, расположенные в различных местах. Пример такого рода конфигурации см. далее в разделе "Пример".

tkscy493.alert_note(ru-ru,VS.90).gifПримечание.

Веб-приложения, построенные на платформе .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

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

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

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

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

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

Сценарии конфигурации 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

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