Доверенные поставщики <управления>

Общие сведения

Элемент <trustedProviders><management> элемента настраивает поставщиков управления, которым доверяют диспетчер IIS и служба управления (WMSVC).

Перед вызовом поставщика для сайта или приложения функции пользователи .NET и роли .NET проверяют, является ли настроенный поставщик доверенным. Если он не является доверенным, параметр в атрибуте allowUntrustedProviders определяет, разрешено ли выполнение ненадежных поставщиков. Если недоверенные поставщики не разрешены и поставщик не входит в коллекцию доверенных поставщиков, поставщик не будет разрешен к запуску.

Совместимость

Версия Примечания
IIS 10.0 Элемент <trustedProviders> не был изменен в IIS 10.0.
IIS 8,5 Элемент <trustedProviders> не был изменен в IIS 8.5.
IIS 8,0 Элемент <trustedProviders> не был изменен в IIS 8.0.
IIS 7,5 Элемент <trustedProviders> не был изменен в IIS 7.5.
IIS 7.0 Элемент <trustedProviders> элемента появился <management> в IIS 7.0.
IIS 6,0 Н/Д

Настройка

Установка служб IIS 7 и более поздних версий по умолчанию не включает службу роли службы управления . Чтобы установить эту службу роли, выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS), средства управления, а затем выберите Служба управления. Щелкните Далее.
    Снимок экрана: служба управления, выбранная в интерфейсе Windows Server 2012. .
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или выключить компоненты Windows.
  3. Разверните узел Службы IIS, средства веб-управления, а затем выберите Служба управления IIS.
    Снимок экрана: служба управления, выбранная в интерфейсе Windows 8.
  4. Нажмите кнопку ОК.
  5. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
  3. В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей выберите Служба управления и нажмите кнопку Далее.
    Снимок экрана: служба управления, выбранная в интерфейсе Windows Server 2008.
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, а затем — Средство управления веб-сайтом.
  4. Выберите Служба управления IIS и нажмите кнопку ОК.
    Снимок экрана: панель

Инструкции

Отсутствует пользовательский интерфейс для настройки <trustedProviders> элемента для IIS 7. Примеры настройки <trustedProviders> элемента программными средствами см. в разделе Примеры кода этого документа.

Конфигурация

Атрибуты

Атрибут Описание
allowUntrustedProviders Дополнительный логический атрибут.

Указывает, могут ли выполняться ненадежные поставщики.

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

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

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

Элемент Описание
add Необязательный элемент.

Добавляет поставщик в коллекцию поставщиков, доверенных для запуска диспетчером IIS и службой управления (WMSVC).

Образец конфигурации

Следующий элемент по умолчанию <trustedProviders> настраивается в корневом файле Administration.config в IIS 7.0 при установке службы роли службы управления.

<trustedProviders allowUntrustedProviders="false">
   <add type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <add type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <add type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</trustedProviders>

Пример кода

Примечание

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

  • В Windows Обозреватель откройте путь C:\Windows\assembly, где C: — это диск операционной системы.
  • Найдите сборку.
  • Щелкните сборку правой кнопкой мыши и выберите пункт Свойства.
  • Скопируйте значение языка и региональных параметров ; Например: Нейтральная.
  • Скопируйте номер версии ; например: 1.0.0.0.
  • Скопируйте значение токена открытого ключа ; например: 426f62526f636b73.
  • Щелкните Отмена.

В следующих примерах кода добавляется поставщик с именем Contoso.Provider в коллекцию доверенных поставщиков управления.

AppCmd.exe

Примечание

Вы не можете настроить <system.webServer/Management> параметры с помощью AppCmd.exe.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetAdministrationConfiguration();

         ConfigurationSection trustedProvidersSection = config.GetSection("system.webServer/management/trustedProviders");
         ConfigurationElementCollection trustedProvidersCollection = trustedProvidersSection.GetCollection();
         ConfigurationElement addElement = trustedProvidersCollection.CreateElement("add");
         addElement["type"] = @"Contoso.Provider, System.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
         trustedProvidersCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetAdministrationConfiguration

      Dim trustedProvidersSection As ConfigurationSection = config.GetSection("system.webServer/management/trustedProviders")
      Dim trustedProvidersCollection As ConfigurationElementCollection = trustedProvidersSection.GetCollection
      Dim addElement As ConfigurationElement = trustedProvidersCollection.CreateElement("add")
      addElement("type") = "Contoso.Provider, System.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
      trustedProvidersCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject("Microsoft.ApplicationHost.WritableAdminManager"); 
adminManager.CommitPath = "MACHINE/WEBROOT"; 
adminManager.SetMetadata("pathMapper", "AdministrationConfig");

var trustedProvidersSection = adminManager.GetAdminSection("system.webServer/management/trustedProviders", "MACHINE/WEBROOT"); 
var trustedProvidersCollection = trustedProvidersSection.Collection;

var addElement = trustedProvidersCollection.CreateNewElement("add");
addElement.Properties.Item("type").Value = "Contoso.Provider, System.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
trustedProvidersCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT"
adminManager.SetMetadata "pathMapper", "AdministrationConfig"

Set trustedProvidersSection = adminManager.GetAdminSection("system.webServer/management/trustedProviders", "MACHINE/WEBROOT")
Set trustedProvidersCollection = trustedProvidersSection.Collection

Set addElement = trustedProvidersCollection.CreateNewElement("add")
addElement.Properties.Item("type").Value = "Contoso.Provider, System.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
trustedProvidersCollection.AddElement(addElement)

adminManager.CommitChanges()