共用方式為


<machineKey> 項目

設定金鑰,以用來進行表單驗證 Cookie 資料及檢視狀態資料的加密和解密,並驗證跨處理序 (Out-Of-Process) 工作階段的狀態識別。可在電腦、網站和應用程式層級來宣告這個區段,但不可在子目錄層級宣告。

<configuration>
   <system.web>
      <machineKey>

<machineKey validationKey="AutoGenerate|value[,IsolateApps]"
            decryptionKey="AutoGenerate|value[,IsolateApps]"
            validation="SHA1|MD5|3DES"/>

必要屬性

屬性 選項 說明
validationKey     指定用來驗證加密資料的金鑰。validationKey 會在 enableViewStateMACtrue 時,用來建立訊息驗證程式碼 (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 加密。

範例

下列範例同時將 validationKeydecryptionKey 設定為 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

請參閱

ASP.NET 組態 | ASP.NET 設定結構描述