管理信任提供者 < 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
- 在工作列上,按一下 [伺服器管理員]。
- 在[伺服器管理員] 中,按一下 [管理] 功能表,然後按一下 [新增角色及功能]。
- 在 [ 新增角色及功能精 靈] 中,按 [ 下一步]。 選取安裝類型,然後按 [ 下一步]。 選取目的地伺服器,然後按 [ 下一步]。
- 在 [ 伺服器角色] 頁面上,展開 [ Web 服務器 (IIS) ],展開 [ 管理工具],然後選取 [ 管理服務]。 按一下 [下一步] 。
. - 在 [選取功能] 頁面上,按 [下一步]。
- 在 [確認安裝選項] 頁面上,按一下 [安裝]。
- 在 [結果] 頁面上,按一下 [關閉]。
Windows 8 或 Windows 8.1
- 在 [開始] 畫面上,將指標一路移至左下角,以滑鼠右鍵按一下 [開始] 按鈕,然後按一下[主控台]。
- 在主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。
- 依序展開 [Internet Information Services]、[ Web 管理工具],然後選取 [ IIS 管理服務]。
- 按一下 [確定]。
- 按一下 [關閉] 。
Windows Server 2008 或 Windows Server 2008 R2
- 在工作列上,按一下 [開始],指向 [系統管理工具],然後按一下[伺服器管理員]。
- 在[伺服器管理員階層] 窗格中,展開 [角色],然後按一下 [Web 服務器] (IIS) 。
- 在 [ Web Server (IIS) ] 窗格中,捲動至 [ 角色服務 ] 區段,然後按一下 [ 新增角色服務]。
- 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,選取 [管理服務],然後按 [下一步]。
- 在 [確認安裝選項] 頁面上,按一下 [安裝]。
- 在 [結果] 頁面上,按一下 [關閉]。
Windows Vista 或 Windows 7
- 在工作列上,按一下 [開始],然後按一下[主控台]。
- 在主控台中,按一下 [程式和功能],然後按一下[開啟或關閉 Windows 功能]。
- 展開 [Internet Information Services],然後展開 [ Web 管理工具]。
- 選取 [IIS 管理服務],然後按一下 [ 確定]。
作法
沒有用於設定 <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()