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
继承层次结构
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 类