加密和解密組態區段

Visual Studio 2010

更新:2007 年 11 月

您可以使用 ASP.NET IIS 註冊工具 (Aspnet_regiis.exe) 加密或解密 Web 組態檔的區段。當處理 Web.config 檔時,ASP.NET 會自動解密已加密的組態項目。

zhhddkxy.alert_note(zh-tw,VS.100).gif注意事項:

Aspnet_regiis.exe 工具位於 %windows%\Microsoft.NET\Framework\versionNumber 資料夾。

您也可以使用 System.Configuration 命名空間中受保護的組態類別來加密和解密 Web 組態檔區段、可執行檔 (.exe) 的組態檔區段,或是電腦層級和應用程式層級組態檔中的區段。如需詳細資訊,請參閱 SectionInformation 類別的 ProtectSection 方法。如需參考 Web.config 檔案區段的詳細資訊,請參閱 WebConfigurationManager 類別。如需參考 Web.config 檔以外之檔案組態區段的詳細資訊,請參閱 ConfigurationManager 類別。

若要加密組態檔內容,請將 Aspnet_regiis.exe 工具與 –pe 選項以及要加密之組態項目的名稱搭配使用。

請使用 –app 選項識別 Web.config 檔要加密的應用程式,並使用 -site 選項識別應用程式所屬的網站。請使用網際網路資訊服務 (IIS) Metabase 中的站台編號識別網站。您可以從 ServerVariables 集合中的 INSTANCE_META_PATH 伺服器變數擷取站台編號。例如,已安裝 IIS 時,就會建立名為 [預設的網站] 的網站當做站台 1。在該站台服務的網頁中,INSTANCE_META_PATH 伺服器變數會傳回 "/LM/W3SVC/1"。如果不指定 -site 選項,就會使用站台 1。

請使用 –prov 選項識別將執行加密和解密之 ProtectedConfigurationProvider 的名稱。如果不使用 -prov 選項指定提供者,就會使用設定當做 defaultProvider 的提供者。

zhhddkxy.alert_note(zh-tw,VS.100).gif注意事項:

如果使用指定自訂金鑰容器的 RsaProtectedConfigurationProvider 執行個體,則在執行 Aspnet_regiis.exe 工具之前就必須先建立金鑰容器。如需詳細資訊,請參閱匯入和匯出受保護的組態 RSA 金鑰容器

下列命令會加密應用程式 SampleApplication 之 Web.config 檔中的 connectionStrings 項目。因為並未包含 -site 選項,所以會假設應用程式來自網站 1 (IIS 中最常用的 [預設的網站]),還會使用電腦組態中指定的 RsaProtectedConfigurationProvider 執行加密。

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider"

當要求應用程式中的網頁或其他 ASP.NET 資源時,ASP.NET 會呼叫受保護之組態區段的提供者,解密要供 ASP.NET 和應用程式程式碼使用的資訊。

zhhddkxy.alert_note(zh-tw,VS.100).gif注意事項:

若要解密和加密 Web.config 檔的區段,ASP.NET 處理序必須擁有讀取適當加密金鑰資訊的使用權限。如需詳細資訊,請參閱匯入和匯出受保護的組態 RSA 金鑰容器

若要解密已加密的組態檔內容,請將 Aspnet_regiis.exe 工具搭配使用 -pd 參數以及要解密之組態項目的名稱。請使用 –app-site 參數識別其 Web.config 檔要被解密的應用程式。因為是從受保護之組態區段的 configProtectionProvider 屬性讀取這項資訊,所以不需要指定 –prov 參數便能識別 ProtectedConfigurationProvider 的名稱。

下列命令會解密 ASP.NET 應用程式 SampleApplication 之 Web.config 檔中的 connectionStrings 項目:

aspnet_regiis -pd "connectionStrings" -app "/SampleApplication"
顯示: