MachineKeyValidation 枚举

定义

指定 ASP.NET 用于表单身份验证和验证视图状态数据的哈希算法,以及用于进程外会话状态标识。

public enum class MachineKeyValidation
public enum MachineKeyValidation
type MachineKeyValidation = 
Public Enum MachineKeyValidation
继承
MachineKeyValidation

字段

名称 说明
MD5 0

指定 ASP.NET 使用消息摘要 5 (MD5) 哈希算法,该算法是生成 128 位哈希值的哈希算法。 这是一个旧值,仅当需要与早期版本的 ASP.NET 兼容时,才应选择该值。

SHA1 1

指定 ASP.NET 使用 HMACSHA1 哈希算法,该算法是生成 160 位哈希值的哈希算法。 这是一个旧值,仅当需要与早期版本的 ASP.NET 兼容时,才应选择该值。

TripleDES 2

指定 ASP.NET 使用 TripleDES (3DES) 加密算法,这是仅当指定视图状态加密时使用的加密算法。 这是一个旧值,仅当需要与早期版本的 ASP.NET 兼容时,才应选择该值。

AES 3

指定 ASP.NET 使用 AES 加密算法。 如果要加密 Web 应用程序中的视图状态,请选择此选项。

如果选择此选项,该 DecryptionKey 属性将用于加密和解密,哈希 HMACSHA1 算法将用于 ValidationKey 属性进行验证。

HMACSHA256 4

指定 ASP.NET 使用 HMACSHA256 哈希算法,该算法是生成 256 位哈希代码的 SHA2 哈希算法。 这是默认值。

HMACSHA384 5

指定 ASP.NET 使用 HMACSHA384 哈希算法,该算法是生成 384 位哈希代码的 SHA2 哈希算法。 此选项适用于需要比算法提供的 HMACSHA256 更强大的安全性的应用程序。

HMACSHA512 6

指定 ASP.NET 使用 HMACSHA512 哈希算法,该算法是生成 512 位哈希代码的 SHA2 哈希算法。 此选项适用于需要比算法提供的 >HMACSHA384 更强大的安全性的应用程序。

Custom 7

指定 ASP.NET 使用自定义哈希算法。 可以在派生自 KeyedHashAlgorithm的任何类中实现自定义哈希算法。

自定义算法通常以声明方式在 machineKey 元素的属性中validation以格式alg:`*algorithm_name*指定。 有关如何在代码中指定自定义算法的信息,请参阅该 ValidationAlgorithm 属性。

示例

下面的代码示例演示如何使用 MachineKeyValidation 枚举。 在此示例中, configSection 是 . 的 MachineKeySection一个实例。 该代码示例是 MachineKeySection 类中的一个较大示例的一部分。

// Set Validation property.
configSection.Validation = MachineKeyValidation.HMACSHA256;
' Set Validation value.
configSection.Validation = MachineKeyValidation.HMACSHA256

注解

ASP.NET 使用基于哈希的消息身份验证代码(HMAC)来帮助检测用于表单身份验证或视图状态的数据是否已被篡改。 创建视图状态内容时会生成 HMAC,并在后续请求中检查 HMAC。 HMAC 可帮助 ASP.NET 确定某人是否已更改了在服务器和客户端之间发送的数据,但除非数据也经过加密,否则这些数据可由任何人读取。 默认情况下,视图状态已验证,但未加密。 有关详细信息,请参阅 ViewStateEncryptionModeRegisterRequiresViewStateEncryption

通过 MachineKeyValidation 枚举,可以指定 ASP.NET 用于创建 HMAC 的算法。 默认值为 HMACSHA256。 ASP.NET 使用具有所选算法的属性 ValidationKey 值来生成 HMAC。

适用于

另请参阅