<machineKey> 項目
設定金鑰,以用來進行表單驗證 Cookie 資料及檢視狀態資料的加密和解密,並驗證跨處理序 (Out-Of-Process) 工作階段的狀態識別。可在電腦、網站和應用程式層級來宣告這個區段,但不可在子目錄層級宣告。
<configuration>
<system.web>
<machineKey>
<machineKey validationKey="AutoGenerate|value[,IsolateApps]"
decryptionKey="AutoGenerate|value[,IsolateApps]"
validation="SHA1|MD5|3DES"/>
必要屬性
屬性 | 選項 | 說明 |
---|---|---|
validationKey | 指定用來驗證加密資料的金鑰。validationKey 會在 enableViewStateMAC 為 true 時,用來建立訊息驗證程式碼 (MAC),以確定檢視狀態沒有受到更動。validationKey 還會用來產生跨處理序、應用程式特定的工作階段識別碼 (Session ID),以確定不同工作階段的工作階段狀態變數是隔離的。 | |
AutoGenerate | 指定 ASP.NET 產生隨機金鑰,並將它儲存在本機安全性授權 (LSA) 中。AutoGenerate 選項是預設值。如果將 IsolateApps 修飾詞加入 validationKey 值,ASP.NET 會使用每個應用程式的應用程式 ID 產生唯一的加密金鑰。 | |
value | 指定手動指派驗證金鑰。這個值必須手動設定,以確保 Web 伺服器網路 (Web Farm) 之間有一致的組態。這個金鑰必須至少為 40 個字元 (20 個位元組),最多為 128 個位元 (64 個位元組)。如果使用長度比最大長度還短的金鑰,就應該以真正隨機的方式來建立,例如使用 RNGCryptoServiceProvider。建議的金鑰長度為 128 個十六進位字元。如果將 IsolateApps 修飾詞加入 validationKey 值,ASP.NET 會使用每個應用程式的應用程式 ID 產生唯一的加密金鑰。 | |
decryptionKey | 指定用來加密資料的金鑰。當 validation 是 3DES 時,decryptionKey 會用於表單驗證的加密和解密以及檢視狀態的加密。 | |
AutoGenerate | 指定 ASP.NET 產生隨機金鑰,並將它儲存在 LSA 中。AutoGenerate 選項是預設值。如果將 IsolateApps 修飾詞加入 decryptionKey 值,ASP.NET 會使用每個應用程式的應用程式 ID 產生唯一的加密金鑰。 | |
value | 指定手動指派的金鑰。您必須手動地將這個值設定為十六進位字元的字串,以確保整個 Web Farm 都有一致的組態。使用 DES 加密時,這個金鑰的長度應該為 16 個字元,使用三重 DES 加密時,長度為 48 個字元。如果使用長度比最大長度還短的金鑰,就應該以真正隨機的方式來建立,例如使用 RNGCryptoServiceProvider。ASP.NET 只能在可以使用 128 位元加密的電腦上,使用三重 DES。如果將 IsolateApps 修飾詞加入 decryptionKey 值,ASP.NET 會使用每個應用程式的應用程式 ID 產生唯一的加密金鑰。 | |
validation | 指定用於資料驗證的加密類型。 | |
SHA1 | 指定 ASP.NET 使用 SHA1 加密。 | |
MD5 | 指定 ASP.NET 使用 MD5 加密。 | |
3DES | 指定 ASP.NET 使用 Triple-DES (3DES) 加密。當指定 3DES 時,表單驗證預設為 SHA1。當 validation 屬性設定為 3DES 時,檢視狀態驗證技術使用 3DES 加密。 |
範例
下列範例同時將 validationKey 和 decryptionKey 設定為 AutoGenerate。同時指定了 isolateApps 選項,以便為伺服器上的每個應用程式產生唯一金鑰。
<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"/>
需求
包含於:<system.web>
**Web 平台:**IIS 5.0、IIS 5.1、IIS 6.0
**組態檔:**Machine.config, Web.config
**組態區段處理常式:**System.Web.Configuration.MachineKeyConfigHandler