<machineKey> 元素

配置用于加密和解密 Forms 身份验证 Cookie 数据和视图状态数据的密钥,以及配置用于验证进程外会话状态标识的密钥。此节可以在计算机、站点或应用程序级别进行声明,但不能在子目录级别声明。

配置结构的示例:

<configuration>
   <system.web>
      <machineKey>

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

必需的属性

属性 选项 描述
validationKey     指定用于验证加密数据的密钥。当 enableViewStateMACtrue 时,可以使用 validationKey 创建一个消息验证代码 (MAC) 以确保视图状态不被篡改。validationKey 还用于生成进程外、应用程序特有的会话 ID 以确保在会话之间隔离会话状态变量。
    AutoGenerate 指定 ASP.NET 生成一个随机的密钥并将其存储在本地安全机构 (LSA) 中。AutoGenerate 选项是默认值。如果将 IsolateApps 修饰符添加到 validationKey 值中,ASP.NET 会使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。
    value 指定一个手动分配的验证密钥。必须手动设置该值以确保整个 Web 服务器网络(Web 场)具有一致的配置。此密钥长度最少为 40 个字符(20 个字节),最多为 128 个字符(64 个字节)。如果使用的密钥比最大长度短,则采用真正随机的方法来创建这些密钥,例如使用 RNGCryptoServiceProvider。建议的密钥长度为 128 个十六进制字符。如果将 IsolateApps 修饰符添加到 validationKey 值中,ASP.NET 会使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。
decryptionKey     指定用于加密数据的密钥。decryptionKey 用于 Forms 身份验证加密和解密;当 validation 为 3DES 时,它还用于视图状态加密。
    AutoGenerate 指定 ASP.NET 生成一个随机的密钥并将其存储在 LSA 中。AutoGenerate 选项是默认值。如果将 IsolateApps 修饰符添加到 decryptionKey 值中,ASP.NET 会使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。
    value 指定一个手动分配的密钥。必须手动将该值设置为十六进制字符串,以确保整个 Web 场具有一致的配置。在使用 DES 加密时,此密钥长度应该为 16 个字符;在使用三重 DES 加密时,此密钥长度应该为 48 个字符。如果使用的密钥比最大长度短,则应该采用真正随机的方法来创建这些密钥。ASP.NET 只能在可使用 128 位加密的计算机上使用三重 DES。如果将 IsolateApps 修饰符添加到 decryptionKey 值中,ASP.NET 会使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。
validation     指定用于数据验证的加密类型。
    SHA1 指定 ASP.NET 使用 SHA1 加密。
    MD5 指定 ASP.NET 使用 MD5 加密。
    3DES 指定 ASP.NET 使用三重 DES (3DES) 加密。在指定 3DES 时,Forms 身份验证默认为 SHA1。在将 validation 属性设置为 3DES 时,视图状态验证技术使用 3DES 加密。

示例

以下示例将 validationKeydecryptionKey 均设置为 AutoGenerate。指定 isolateApps 选项以便给服务器上的每个应用程序生成唯一的密钥。

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

要求



相关主题


© 1997-2003 Microsoft Corporation。保留所有权利