请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
先前版本
ASP.NET 参考
<system.web>
 <machineKey>

  开启低带宽视图
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

同时提供下列产品的其他版本:
.NET Framework 常规参考
machineKey 元素(ASP.NET 设置架构)

对密钥进行配置,以便将其用于对 Forms 身份验证 Cookie 数据和视图状态数据进行加密和解密,并将其用于对进程外会话状态标识进行验证。

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 字段时,该属性用于 Forms 身份验证加密和解密以及视图状态加密。

如果向此属性添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。IsolateApps 也是默认值的一部分。

如果您需要在 Web 服务器网络(网络场)中支持配置,请手动设置此属性以确保配置保持一致。

此属性可以为下列可能值之一。

说明

AutoGenerate

指定 ASP.NET 生成随机密钥并将其存储在 LSA 中。该值是默认值。如果向 decryptionKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

value

指定一个手动分配的密钥。该值必须手动设置为十六进制字符串,以确保配置在整个网络场中保持一致。使用 DES 加密时,密钥长度应该为 16 个字符;而使用三重 DES (3 DES) 加密时,密钥长度应该为 48 个字符。如果要使用长度小于最大长度的密钥,则应通过真正的随机方式(例如,通过使用 RNGCryptoServiceProvider 类)来创建这些密钥。只有在计算机使用 128 位加密的情况下,ASP.NET 才能使用三重 DES。如果向 decryptionKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

默认值为 "AutoGenerate,IsolateApps"

validation

必选的 MachineKeyValidation 属性。

指定用来验证数据的加密类型。

此属性可以为下列可能值之一。

说明

AES

指定 ASP.NET 使用 AES (Rijndael) 算法来对数据进行解密。AES 是用于对数据进行解密的默认算法。

MD5

指定 ASP.NET 使用 Message Digest 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,以确保每个会话具有独立的会话状态变量。

如果向 ValidationKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。IsolateApps 也是默认值的一部分。

如果您需要在 Web 服务器网络(网络场)中支持配置,请手动设置 ValidationKey 属性以确保配置保持一致。

validationKey 属性可以为下列可能值之一。

说明

AutoGenerate

指定 ASP.NET 生成随机密钥并将其存储在 LSA 中。此选项是默认值。如果向 validationKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

value

指定一个手动分配的密钥。该值必须手动设置为十六进制字符串,以确保配置在整个网络场中保持一致。使用 DES 加密时,密钥长度应该为 16 个字符;而使用三重 DES 加密时,密钥长度应该为 48 个字符。如果要使用长度小于最大长度的密钥,则应通过真正的随机方式(例如,通过使用 CryptographyRNGCryptoServiceProvider 类)来创建这些密钥。只有在计算机使用 128 位加密的情况下,ASP.NET 才能使用三重 DES。如果向 validationKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

默认值为 "AutoGenerate,IsolateApps"

子元素

无。

父元素

元素 说明

configuration

指定公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

system.web

指定配置文件中 ASP.NET 配置设置的根元素,并且包含各种配置元素,这些配置元素配置 ASP.NET Web 应用程序并控制这些应用程序的行为方式。

machineKey 元素对密钥进行配置,以便将其用于对 Forms 身份验证 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 属性都设置为 AutoGenerate。并且,指定了 isolateApps 值,以便为服务器上的每个应用程序生成一个唯一的密钥。

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

配置节处理程序

MachineKeySection

配置成员

MachineKey

可配置的位置

Machine.config

根级别的 Web.config

应用程序级别的 Web.config

要求

Microsoft Internet 信息服务 (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