共用方式為


trust 項目 (ASP.NET 設定結構描述)

設定套用至應用程式的程式碼存取安全性 (CAS) 層級。 如果您要執行低於 Full 之信任的 Web 應用程式,請使用這個項目。

<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 部分信任原則檔案的組合,建立程式碼存取安全性 (CAS) 原則。

  • 部分信任應用程式定義域會在應用程式定義域層級還原為受到完整信任。

  • 會使用 .NET Framework 安裝目錄的 CONFIG 目錄中的舊版部分信任檔案,而非同一個目錄中的新部分信任組態檔案。 舊版檔案包含在 .NET Framework 1.1 版 或 .NET Framework 2.0 SP1 中找到的成員資格條件。

  • 還有套用其他成員資格條件以評估權限。 這些條件是在 ASP.NET 部分信任檔案中定義的。 .NET Framework 4 版本所隨附的 CONFIG 目錄包含舊版的部分信任原則檔案。 這些檔案的名稱中含有舊版,並包含 .NET Framework 2.0 SP1 區段。 這些區段包含對組件評估 CAS 原則所需的非空白成員資格條件。

  • 如果 ASP.NET 應用程式在部分信任下執行,而且信任層級的安全性原則檔對應至一個預設部分信任組態檔,ASP.NET 就會自動選擇對應的舊版組態檔。 例如,如果通常會從 Web_mediumtrust.config 載入安全性原則,在舊版模式中,ASP.NET 則會從 Legacy.web_mediumtrust.config 載入安全性原則。

預設值是 false。

level

必要的 String 屬性。

指定將在其下執行應用程式的信任層級。 每個信任層級都對應至使用組態檔中 trustLevel 項目的個別 XML 原則檔。 原則檔會列出每個信任層級授與的權限集合。 如需 ASP.NET 和原則檔的詳細資訊,請參閱 ASP.NET 信任層級和原則檔

這個屬性可以是使用者定義的值 (如果在 securityPolicy 項目 (ASP.NET 設定結構描述) 項目的 trustLevel 項目中定義了相符的安全性原則對應),或是下列其中一個可能的值 (以嚴格程度排列,愈往下愈嚴格)。

值描述
Full 指定無限制的使用權限。授與 ASP.NET 應用程式使用權限,以存取符合作業系統安全性的任何資源。支援所有特殊權限操作。這個設定在 AspNetHostingPermissionLevel 列舉型別中稱為 Unrestricted。
High 指定高等層級的程式碼存取安全性,這表示應用程式預設不能進行下列任一作業:
  • 呼叫 Unmanaged 程式碼。

  • 呼叫 Serviced 元件。

  • 寫入事件記錄檔。

  • 存取 Microsoft Message Queing 佇列。

  • 存取 ODBC、OleDb 或 Oracle 資料來源。

Medium 指定中等層級的程式碼存取安全性,這表示除了 High 的限制以外,ASP.NET 應用程式預設不能進行下列任一作業:
  • 存取應用程式目錄之外的檔案。

  • 存取登錄。

  • 呼叫網路或 Web 服務 (例如,使用 System.Net.HttpWebRequest 類別)。

Low 指定低層級的程式碼存取安全性,這表示除了 Medium 的限制以外,應用程式預設不能進行下列任一作業:
  • 寫入檔案系統。

  • 呼叫 Assert 方法。

Minimal 指定最低層級的程式碼存取安全性,這表示應用程式只具有執行的權限。

預設為 Full (無限制)。

originUrl

選擇性 String 屬性。

指定要和授與中度信任之受限的 WebPermission 權限搭配使用的 URL。 如果存在,則可以用於某些類別,例如 HttpWebRequest,這可以允許由 WebPermission 所指定之特定的 URL 連接。 如此可讓依賴主機概念的使用權限正常運作。

permissionSetName

選擇性的字串屬性。

指定權限集合的名稱。

預設值為 "ASP.NET"。

processRequestInApplicationTrust

選擇性 Boolean 屬性。

指定是否自動將網頁要求限制為信任原則檔中設定的使用權限,該原則檔會套用至 ASP.NET 應用程式。

信任原則檔在 securityPolicy 項目的 trustLevel 項目中指定。 使用 trust 項目的 level 屬性,可將單一信任原則套用至 ASP.NET 應用程式。

如果設為 False,即使 level 屬性指定其他信任層級,ASP.NET 要求也可在 Full 信任下執行。 除非有特定的理由要這樣做,否則請勿重設這個屬性為預設之 true 以外的值。

這個屬性是 .NET Framework 2.0 版中新增的屬性。

預設為 True。

子項目

無。

父項目

項目

描述

configuration

指定 Common Language Runtime 和 .NET Framework 應用程式所使用之每個組態檔中需要的根項目 (Root Element)。

system.web

指定組態檔中 ASP.NET 組態設定的根項目 (Root Element),並包含會設定 ASP.NET Web 應用程式以及控制這些應用程式之行為的組態項目。

備註

trust 項目會設定套用至應用程式的程式碼存取安全性 (CAS) 層級。 安全性原則檔對應至 securityPolicy 集合項目中的信任層級名稱。 原則檔會列出信任層級授與的權限集合。 trust 項目指定將哪個信任層級套用至 ASP.NET 應用程式。 如需 ASP.NET 和原則檔的詳細資訊,請參閱 ASP.NET 信任層級和原則檔

根據預設,Web 應用程式以 Full 信任執行。 程式碼存取安全性原則會授與完全信任應用程式無限制的程式碼存取權限。 這些使用權限包括內建系統和自訂使用權限。 這表示程式碼存取安全性不會阻止您的應用程式存取任何安全資源。 資源存取嘗試的成敗完全由作業系統層級的安全性決定。 如果以 Full 之外的信任層級設定應用程式,則將其視為部分信任的應用程式。 部分信任的應用程式具有受限制的權限,這會限制應用程式對安全資源的存取權。

若要改進裝載環境的安全性,請使用根 Web.config 檔中的 location 項目來包住裝載應用程式的 securityPolicy 和 trust 項目和 allowOverride="False" 屬性阻止應用程式覆寫更接近本機的 Web.config 檔設定。 如果您想要為裝載應用程式設定不同的信任層級,可以選擇性的使用多個 location 項目,每個項目使用不同的 path 屬性。 如需這類組態的範例,請參閱本主題稍後的<範例>。

注意事項注意事項

.NET Framework 1.0 版上建置的 Web 應用程式總是以 Full 信任執行,這是由於 System.Web 中的型別要求完全信任的呼叫端。升級至較新版本的 .NET Framework 時,未測試任何先前存在的應用程式之前,請勿變更信任層級。

預設的組態

下列的預設 trust 項目是在根 Web.config 檔中設定。

<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 檔,對所有在伺服器上的 ASP.NET 應用程式指定 Medium 信任層級設定,以及指定 location 項目以鎖定設定。 使用同一組態檔中的另一個 location 項目,可讓 Default Web Site/Temp 應用程式的 Web.config 檔覆寫根 Web.config 檔中的設定。

<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 Internet Information Services (IIS) 5.0、5.1 或 6.0 版

.NET Framework 1.0、1.1 或 2.0 版

Microsoft Visual Studio 2003 或 Visual Studio 2005

請參閱

工作

HOW TO:使用位置設定來設定特定的目錄

HOW TO:鎖定 ASP.NET 組態設定

參考

system.web 項目 (ASP.NET 設定結構描述)

configuration 項目 (一般設定結構描述)

securityPolicy 的 trustLevel 項目 (ASP.NET 設定結構描述)

securityPolicy 項目 (ASP.NET 設定結構描述)

System.Configuration

System.Net.Configuration

TrustSection

AspNetHostingPermission

概念

ASP.NET 信任層級和原則檔

ASP.NET 信任層級和原則檔

管理安全性原則

保護 ASP.NET 組態

ASP.NET 組態案例

其他資源

ASP.NET Web 應用程式安全性

一般組態設定 (ASP.NET)

ASP.NET 組態設定

ASP.NET 網站管理

ASP.NET 組態檔

ASP.NET 組態 API