共用方式為


管理信任提供者 < trustedProviders>

概觀

專案的 <trustedProviders> 元素 <management> 會設定 IIS 管理員和管理服務所信任的管理提供者, (WMSVC) 。

在呼叫網站或應用程式的提供者之前,.NET 使用者和 .NET 角色功能會確認已設定的提供者受信任。 如果不受信任, allowUntrustedProviders 屬性中的設定將決定是否允許執行不受信任的提供者。 如果不允許不受信任的提供者,而且提供者不在受信任的提供者集合中,則不允許提供者執行。

相容性

版本 備註
IIS 10.0 未在 IIS 10.0 中修改專案 <trustedProviders>
IIS 8.5 未在 IIS 8.5 中修改專案 <trustedProviders>
IIS 8.0 未在 IIS 8.0 中修改專案 <trustedProviders>
IIS 7.5 未在 IIS 7.5 中修改專案 <trustedProviders>
IIS 7.0 元素 <trustedProviders><management> 元素是在 IIS 7.0 中引進。
IIS 6.0 N/A

安裝程式

IIS 7 和更新版本的預設安裝不包含 管理服務 角色服務。 若要安裝此角色服務,請使用下列步驟。

Windows Server 2012 或 Windows Server 2012 R2

  1. 在工作列上,按一下 [伺服器管理員]
  2. [伺服器管理員] 中,按一下 [管理] 功能表,然後按一下 [新增角色及功能]。
  3. 在 [ 新增角色及功能精 靈] 中,按 [ 下一步]。 選取安裝類型,然後按 [ 下一步]。 選取目的地伺服器,然後按 [ 下一步]。
  4. 在 [ 伺服器角色] 頁面上,展開 [ Web 服務器 (IIS) ],展開 [ 管理工具],然後選取 [ 管理服務]。 按一下 [下一步] 。
    在 Windows Server 2012 介面中選取 [管理服務] 的螢幕擷取畫面。 .
  5. 在 [選取功能] 頁面上,按 [下一步]
  6. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  7. 在 [結果] 頁面上,按一下 [關閉]

Windows 8 或 Windows 8.1

  1. 在 [開始] 畫面上,將指標一路移至左下角,以滑鼠右鍵按一下 [開始] 按鈕,然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。
  3. 依序展開 [Internet Information Services]、[ Web 管理工具],然後選取 [ IIS 管理服務]。
    在 Windows 8 介面中選取 [管理服務] 的螢幕擷取畫面。
  4. 按一下 [確定]。
  5. 按一下 [關閉] 。

Windows Server 2008 或 Windows Server 2008 R2

  1. 在工作列上,按一下 [開始],指向 [系統管理工具],然後按一下[伺服器管理員]。
  2. [伺服器管理員階層] 窗格中,展開 [角色],然後按一下 [Web 服務器] (IIS)
  3. 在 [ Web Server (IIS) ] 窗格中,捲動至 [ 角色服務 ] 區段,然後按一下 [ 新增角色服務]。
  4. 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,選取 [管理服務],然後按 [下一步]。
    在 Windows Server 2008 介面中選取 [管理服務] 的螢幕擷取畫面。
  5. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  6. 在 [結果] 頁面上,按一下 [關閉]

Windows Vista 或 Windows 7

  1. 在工作列上,按一下 [開始],然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下[開啟或關閉 Windows 功能]。
  3. 展開 [Internet Information Services],然後展開 [ Web 管理工具]。
  4. 選取 [IIS 管理服務],然後按一下 [ 確定]。
    I S Manager 中 [管理服務] 窗格的螢幕擷取畫面。

作法

沒有用於設定 <trustedProviders> IIS 7 元素的使用者介面。 For examples of how to configure the <trustedProviders> element programmatically, see the Code Samples section of this document.

組態

屬性

屬性 描述
allowUntrustedProviders 選擇性的 Boolean 屬性。

指定不受信任的提供者是否可以執行。

重要注意事項: 基於安全性考慮,不建議將此值變更為 true,因為它會允許在伺服器上執行不受信任的程式碼。 相反地,您應該一律測試提供者,並只在信任的提供者是安全的時,將其新增至信任的提供者集合。

預設值是 false

子元素

元素 描述
add 選擇性項目。

將提供者新增至由 IIS 管理員和管理服務 (WMSVC) 所信任的提供者集合。

組態範例

安裝管理服務角色服務時,下列預設 <trustedProviders> 元素會在 IIS 7.0 的根Administration.config檔案中設定。

<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) 中的 Managed 程式碼元件。 使用這些範例中的程式碼來部署您自己的元件之前,您需要從 GAC 擷取元件資訊。 若要這樣做,請使用下列步驟:

  • 在 Windows 檔案總管中,開啟您的 C:\Windows\元件路徑,其中 C: 是您的作業系統磁片磁碟機。
  • 找出您的元件。
  • 以滑鼠右鍵按一下元件,然後按一下 [ 屬性]。
  • 複製 文化特性 值;例如: 中性
  • 複製 版本 號碼;例如: 1.0.0.0
  • 複製 公開金鑰權杖 值;例如: 426f62526f636b73
  • 按一下 [取消]

下列程式碼範例會將名為 Contoso.Provider 的提供者新增至受信任管理提供者的集合。

AppCmd.exe

注意

您無法使用 AppCmd.exe 來設定 <system.webServer/Management> 設定。

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()