Share via


HOW TO:讓部分信任的程式碼無法存取 APTCA 組件

更新:2007 年 11 月

AllowPartiallyTrustedCallersAttribute (APTCA) 屬性可讓部分信任的程式碼存取已簽署組件中的完全信任程式碼。當 APTCA 屬性套用到組件時,會將組件標記為其存留期允許部分信任的呼叫端。如果組件在安裝後將受保護的資源公開給部分信任的程式碼,這就可能產生安全性弱點。為解決此問題,您可以設定登錄值,表示應忽略該組件上的 APTCA 屬性。

重要事項:

從組件移除部分信任的能力會根據登錄機碼而定,如下列程序所述。如果執行應用程式的帳戶沒有存取控制清單 (ACL) 使用權限來存取該登錄機碼,設定就無效,而會讓部分信任的呼叫端存取組件。這會導致權限意外提升。您必須確定此機碼已經設定 ACL 權限,所有組件都可以讀取它。

若要從組件移除部分信任

  1. 在系統登錄的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA 機碼底下建立機碼。請使用包含組件的強式名稱資訊的機碼名稱。這個名稱應包含簡單名稱、版本號碼、文化特性 (可為中性)、公開金鑰語彙基元以及組件的檔案版本。例如,下列是有效的機碼:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA\Microsoft.Office.Interop.Visio, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, FileVersion=11.0.3216.0。

  2. 建立名為 APTCA_FLAG 的 DWORD 值,並將值設為 1 以移除該組件的部分信任可視性。