MachineKeyValidation 枚举

定义

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

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

字段

AES 3

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

如果选择此选项,则 DecryptionKey 属性将用于加密和解密,HMACSHA1 哈希算法将与 ValidationKey 属性一起用于验证。

Custom 7

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

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

HMACSHA256 4

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

HMACSHA384 5

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

HMACSHA512 6

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

MD5 0

指定 ASP.NET 使用 Message Digest 5 (MD5) 哈希算法,该算法是生成 128 位哈希代码的哈希算法。 这是一个旧值,只有在需要与早期版本的 ASP.NET 兼容时才应选择该值。

SHA1 1

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

TripleDES 2

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

示例

下面的代码示例演示如何使用 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 确定某人是否更改了在服务器和客户端之间发送的数据,但数据可以在通过 Internet 传输时由任何人读取,除非数据也经过加密。 默认情况下,将验证视图状态,但未加密。 有关详细信息,请参阅 ViewStateEncryptionModeRegisterRequiresViewStateEncryption

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

适用于

另请参阅