machineKey
位于System.web
入口下方web.config
有关 web.config 架构,请参阅MSDN 链接。
如果您在 web.config 中没有看到它,您可以在其中添加它。
再次来自MSDN :-)
为了提供防篡改 ViewState,从 ViewState 内容生成散列消息身份验证代码 (HMAC),并在后续请求中比较散列。的validation属性表示使用哪种散列算法,默认为SHA1,使用HMACSHA1算法。散列的有效选择包括 SHA1 或 MD5,尽管 SHA1 更可取,因为它产生更大的散列并且被认为在加密上比 MD5 更强。的validationKey 属性与ViewState 内容一起使用以生成HMAC。如果您的应用程序安装在 Web 场中,则需要将 validationKey 从 AutoGenerate,IsolateApps 更改为特定的手动生成的键值。
<pages>
和元素的默认设置<machineKey>
在机器级 web.config.comments文件中定义。
对于 machineKey,它们是
<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1" decryption="Auto" />
编辑:对于 .NET 4.0,默认算法已更改为SHA256
我认为找到默认值的最简单方法是查看 MSDN 中此配置值的条目。
machinekey 的 MSDN 4.0 如下。选择的值是默认值。[] 中的值是该字段可以采用的其他可选值。我记得在某处读过这是 MSDN 中表示配置值默认值的典型方式。
<machineKey
validationKey="AutoGenerate,IsolateApps" [String]
decryptionKey="AutoGenerate,IsolateApps" [String]
validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 |
HMACSHA384 | HMACSHA512 | alg:algorithm_name]
decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/>