ASP.NET machineKey配置部分的默认位置

时间:2010-09-21 10:48:19

标签: asp.net machinekey

在哪里可以找到ASP.NET的machineKey配置部分?

我的应用Web.config中没有一个,根Web.config中没有一个,machine.config中没有一个。

这是否意味着有一些其他默认硬编码到ASP.NET中?如果是这样,默认值是什么?(适用于.NET 2和4)

阅读本文:http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx

我期待在某个地方找到类似的东西:

<machineKey 
    validationKey="AutoGenerate,IsolateApps" 
    decryptionKey="AutoGenerate,IsolateApps" 
/>

编辑 1.1文档似乎相当清晰,默认值为http://msdn.microsoft.com/en-us/library/w8h3skw9(VS.71).aspx,但4个文档含糊不清http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx

1 个答案:

答案 0 :(得分:33)

machineKey位于System.web

web.config条目下

请参阅MSDN link以获取web.config架构。

如果你在web.config中没有看到它,你可以在那里添加它。

再次来自MSDN: - )

为了提供防篡改ViewState,从ViewState内容生成散列消息验证代码(HMAC),并在后续请求中比较散列。 指示要使用哪种哈希算法的验证属性,默认为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,默认算法为changed SHA256 我认为找到默认值的最简单方法是在MSDN中查看此配置值的条目。

MSDN 4.0 for machinekey如下。选择的值是默认值。 []中的值是该字段可以采用的其他可选值。 我记得在某处找到这是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]
/>