按一下以給予評分及指教
MSDN
MSDN Library
.NET 開發
先前版本
一般參考
ASP.NET 參考
組態檔語法
<system.web>
 <machineKey>

  開啟低頻寬檢視
本頁僅適用於
Microsoft Visual Studio 2005/.NET Framework 2.0

其他版本也適用於下列軟體:
.NET Framework 一般參考
machineKey 項目 (ASP.NET 設定結構描述)

設定金鑰,用以進行表單驗證 Cookie 資料及檢視狀態資料的加密和解密,並驗證跨處理序 (Out-Of-Process) 工作階段的狀態識別。

configuration 項目 (一般設定結構描述)
  system.web 項目 (ASP.NET 設定結構描述)
    machineKey 項目 (ASP.NET 設定結構描述)
<machineKey 
   validationKey="AutoGenerate|value[,IsolateApps]"
   decryptionKey="AutoGenerate|value[,IsolateApps]"
   validation="[SHA1|MD5|3DES]"
   decryption="[Auto|]"
/>

下列小節描述屬性、子項目和父項目。

屬性

屬性 描述

decryption

選擇性的 String 屬性。

指定用來解密資料的雜湊演算法類型。

這個屬性可以是下列其中一個可能值。

說明

Auto

指定 ASP.NET 根據組態預設值,決定使用哪種解密演算法。這是預設值。

AES

指定 ASP.NET 使用 AES (Rijndael) 演算法解密資料。AES 是解密資料的預設演算法。

3DES

指定 ASP.NET 使用 TripleDES 演算法解密資料。TripleDES (3DES) 演算法使用 DES 演算法的三個連續反覆運算。

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

預設值為 "Auto"

decryptionKey

必要的 String 屬性。

指定用於加密和解密資料的金鑰,或是產生金鑰的程序。當 validation 設定為 TripleDES 欄位時,這個屬性便會用於表單驗證加密和解密,以及檢視狀態加密。

如果您將 IsolateApps 修飾詞加入至此屬性,ASP.NET 就會使用每個應用程式的應用程式 ID,為其產生唯一的加密金鑰。IsolateApps 也是預設值的一部分。

如果您需要支援整個 Web 伺服器網路的組態 (Web 伺服陣列),請手動設定此屬性,以確保一致的組態。

這個屬性可以是下列其中一個可能值。

描述

AutoGenerate

指定 ASP.NET 產生隨機金鑰,並將它儲存在 LSA 中。這個值是預設值。如果您將 IsolateApps 修飾詞加入 decryptionKey 值,ASP.NET 就會使用每個應用程式的應用程式 ID,為每個應用程式產生唯一的加密金鑰。

value

指定手動指派的金鑰。您必須手動地將這個值設定為十六進位字元的字串,以確保整個 Web 伺服陣列都有一致的組態。使用 DES 加密時,這個金鑰的長度應該為 16 個字元,使用三重 DES (3 DES) 加密時,長度則為 48 個字元。如果使用的金鑰比最大長度要短,則應以真正隨機的方式建立金鑰,例如使用 RNGCryptoServiceProvider 類別。ASP.NET 只能在可以使用 128 位元加密的電腦上,使用三重 DES。如果您將 IsolateApps 修飾詞加入 decryptionKey 值,則 ASP.NET 會使用每個應用程式的應用程式 ID,為每個應用程式產生唯一的加密金鑰。

預設值為 "AutoGenerate,IsolateApps"

validation

必要的 MachineKeyValidation 屬性。

指定用來驗證資料的加密類型。

這個屬性可以是下列其中一個可能值。

說明

AES

指定 ASP.NET 使用 AES (Rijndael) 演算法解密資料。AES 是解密資料的預設演算法。

MD5

指定 ASP.NET 使用訊息摘要 5 (MD5) 雜湊演算法。這個演算法和 SHA1 相比可以產生較佳的效能。

SHA1

指定 ASP.NET 使用 SHA1 雜湊演算法。使用這個演算法可增強安全性。

這個值是預設值。

TripleDES

指定 ASP.NET 使用 TripleDES 演算法解密資料。TripleDES 演算法使用 DES 演算法的三個連續反覆運算。

在 .NET Framework 1.0 和 1.1 版中,這個值為 "3DES"

預設值為 "SHA1"

validationKey

必要的 String 屬性。

指定用於驗證加密資料的金鑰。enableViewStateMACtrue 時,會使用 validationKey 建立訊息驗證程式碼 (MAC),以確保檢視狀態沒有遭到修改。validationKey 還會用來產生跨處理序、應用程式特定的工作階段 ID,以確保不同工作階段的工作階段狀態變數是隔離的。

如果您將 IsolateApps 修飾詞加入 ValidationKey 值,則 ASP.NET 會使用每個應用程式的應用程式 ID,為其產生唯一的加密金鑰。IsolateApps 也是預設值的一部分。

如果您需要支援整個 Web 伺服器網路的組態 (Web 伺服陣列),請手動設定 ValidationKey 屬性,以確保一致的組態。

validationKey 屬性可以是下列其中一個可能值。

描述

AutoGenerate

指定 ASP.NET 產生隨機金鑰,並將它儲存在 LSA 中。這個選項是預設值。如果您將 IsolateApps 修飾詞加入 validationKey 值,則 ASP.NET 會使用每個應用程式的應用程式 ID,為每個應用程式產生唯一的加密金鑰。

value

指定手動指派的金鑰。您必須手動地將這個值設定為十六進位字元的字串,以確保整個 Web 伺服陣列都有一致的組態。使用 DES 加密時,這個金鑰的長度應該為 16 個字元,使用三重 DES 加密時,長度為 48 個字元。如果使用的金鑰比最大長度要短,則應以真正隨機的方式建立金鑰,例如使用 CryptographyRNGCryptoServiceProvider 類別。ASP.NET 只能在可以使用 128 位元加密的電腦上,使用三重 DES。如果您將 IsolateApps 修飾詞加入 validationKey 值,則 ASP.NET 會使用每個應用程式的應用程式 ID,為每個應用程式產生唯一的加密金鑰。

預設值為 "AutoGenerate,IsolateApps"

子項目

無。

父項目

項目 描述

configuration

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

system.web

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

machineKey 項目會設定金鑰,用於加密和解密表單驗證 Cookie 資料和檢視狀態資料,以及驗證跨處理序工作階段的狀態識別。

下列預設 machineKey 項目不會明確地設定在 Machine.config 檔案或根 Web.config 檔案中。然而,應用程式傳回的是預設組態。

<machineKey 
   validationKey="AutoGenerate,IsolateApps" 
   decryptionKey="AutoGenerate,IsolateApps"    
   validation="SHA1" 
   decryption="Auto" 
/>

在 .NET Framework 1.1 版中,下列預設 machineKey 項目是設定在 Machine.config 檔案中。

<machineKey 
   validationKey="AutoGenerate,IsolateApps" 
   decryptionKey="AutoGenerate,IsolateApps" 
   validation="SHA1"
/>

在 .NET Framework 1.0 版中,下列預設 machineKey 項目是設定在 Machine.config 檔案中。

<machineKey 
   validationKey="AutoGenerate" 
   decryptionKey="AutoGenerate" 
   validation="SHA1"
/>

下列程式碼範例示範如何將 validationKeydecryptionKey 屬性都設定為 AutoGenerateisolateApps 值的指定可為伺服器上的每個應用程式產生唯一金鑰。

<machineKey 
   validationKey="AutoGenerate,IsolateApps" 
   decryptionKey="AutoGenerate,IsolateApps" 
   validation="SHA1"
/>

組態區段處理常式

MachineKeySection

組態成員

MachineKey

可設定的位置

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

社群內容   什麼是社群內容?
新增內容 RSS  註解
Processing
© 2009 Microsoft Corporation. 著作權所有,並保留一切權利。 使用規定  |  商標  |  隱私權聲明
Page view tracker