MachineKeySection 类

定义控制密钥生成和算法的配置设置,这些密钥生成和算法在 Forms 身份验证、视图状态验证和会话状态应用程序隔离中用于加密、解密和媒体访问控制 (MAC) 操作。

语法

class MachineKeySection : ConfigurationSection  

方法

下表列出了 MachineKeySection 类公开的方法。

名称 描述
GetAllowDefinition (继承自 ConfigurationSection。)
GetAllowLocation (从 ConfigurationSection 继承。)
RevertToParent (从 ConfigurationSection 继承。)
SetAllowDefinition (从 ConfigurationSection 继承。)
SetAllowLocation (从 ConfigurationSection 继承。)

属性

下表列出了 MachineKeySection 类公开的属性。

名称 描述
Decryption 一个读/写剪裁 string 值,指定用于解密数据的哈希算法的类型。 后文的“备注”部分列出了可能的值。 默认值为“自动”。
DecryptionKey 一个读/写剪裁 string 值,该值指定生成密钥的过程,或包含用于加密和解密数据的文本。 默认值为“AutoGenerate,IsolateApps”。 注意:使用“AutoGenerate”字符串指定 ASP.NET 生成随机密钥,并将其存储在本地安全机构中。 “AutoGenerate”字符串是默认值的一部分。 如果将“IsolateApps”修饰符添加到 DecryptionKey 值,ASP.NET 使用其应用程序 ID 为每个应用程序生成唯一的加密密钥。 “IsolateApps”也是默认值的一部分。 如果需要支持跨 Web 服务器网络(Web 场)的配置,请手动设置 DecryptionKey 属性以确保一致的配置。
Location (继承自 ConfigurationSection。)一个键属性。
Path (继承自 ConfigurationSection。)一个键属性。
SectionInformation (从 ConfigurationSection 继承。)
Validation 一个读/写 sint32 值,该值指定用于验证数据的加密类型。 后文的“备注”部分列出了可能的值。
ValidationKey 一个读/写剪裁 string 值,该值指定生成密钥的过程,或包含用于验证加密数据的文本。 默认值为“AutoGenerate,IsolateApps”。 注意:PagesSection 类的 EnableViewStateMAC 属性是 true 时,ASP.NET 使用 ValidationKey 属性创建消息验证码以确保视图状态未被篡改。 验证密钥还用于生成进程外、特定于应用程序的会话 ID,以确保在应用程序之间隔离会话状态变量。 使用“AutoGenerate”字符串指定 ASP.NET 生成随机密钥,并将其存储在本地安全机构中。 “AutoGenerate”字符串是默认值的一部分。 如果将“IsolateApps”修饰符添加到 ValidationKey 值,ASP.NET 使用其应用程序 ID 为每个应用程序生成唯一的加密密钥。 “IsolateApps”也是默认值的一部分。 如果需要支持跨 Web 服务器网络(Web 场)的配置,请手动设置 ValidationKey 属性以确保一致的配置。

子类

此类不包含子类。

注解

注意

为了使 MachineKeySection 类能够跨 Web 服务器网络(Web 场)工作,必须显式地配置 MachineKeySection 属性,并且这些属性具有相同的有效键值。 “AutoGenerate”值不适用于 Web 场,因为它依赖于仅由本地计算机保留的加密随机密钥。 任何其他计算机都无法解密此密钥。

下表列出了 Decryption 属性可能的值。 默认值为“自动”。

说明
Auto ASP.NET 确定根据默认配置设置解密数据的算法。
AES ASP.NET 使用 AES 算法解密数据。
3DES ASP.NET 使用三重 DES 算法解密数据。

下表列出了 Validation 属性可能的值。 默认值为 1 (SHA1)。

关键字 说明
0 MD5 ASP.NET 使用 MD5(消息摘要算法 5)加密。
1 SHA1 ASP.NET 使用 SHA1(安全哈希算法 1)加密。
2 3DES ASP.NET 使用三重 DES(数据加密标准)加密。
3 AES ASP.NET 使用 AES(高级加密标准)加密。

示例

以下示例显示默认网站的 MachineKeySection 设置。

' Connect to the WMI WebAdministration namespace.  
Set oWebAdmin = _  
    GetObject("winmgmts:root\WebAdministration")  
  
' Get the machine key section.  
Set oSite = oWebAdmin.Get("Site.Name='Default Web Site'")  
oSite.GetSection "MachineKeySection", oMKeySection  
  
' Display the path and location.  
WScript.Echo "Machine Key Section Settings"  
WScript.Echo "----------------------------"  
WScript.Echo "Path: " & oMKeySection.Path  
WScript.Echo "Location: " & oMKeySection.Location  
  
' Display the machine key settings.  
WScript.Echo "Decryption: " & oMKeySection.Decryption  
  
WScript.Echo "Decryption Key: " & _  
    oMKeySection.DecryptionKey      
  
WScript.Echo "Validation: " & _  
    ValidationText(oMKeySection.Validation)  
  
WScript.Echo "Validation Key: " & oMKeySection.ValidationKey  
  
' Convert the Validation enumeration values to text.  
Function ValidationText(enumValue)  
    Select Case enumValue  
        Case 0  
            ValidationText = "MD5"  
        Case 1  
            ValidationText = "SHA1"  
        Case 2  
            ValidationText = "3DES"  
        Case 3  
            ValidationText = "AES"  
        Case Else  
            ValidationText = "Undefined enumeration value."  
    End Select  
End Function  
  

继承层次结构

ConfigurationSection

MachineKeySection

要求

类型 描述
客户端 - IIS 7.0(在 Windows Vista 上)
- IIS 7.5(在 Windows 7 上)
- IIS 8.0(在 Windows 8 上)
- IIS 10.0(在 Windows 10 上)
服务器 - IIS 7.0(在 Windows Server 2008 上)
- IIS 7.5(在 Windows Server 2008 R2 上)
- IIS 8.0(在 Windows Server 2012 上)
- IIS 8.5(在 Windows Server 2012 R2 上)
- IIS 10.0(在 Windows Server 2016 上)
产品 - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0
MOF 文件 WebAdministration.mof

另请参阅

System.Web.Configuration.MachineKeyValidationConfigurationSection 类
PagesSection 类