24

我在哪里可以找到machineKeyASP.NET 的配置部分?

我的应用程序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 文档似乎相当清楚 wrt 默认值: http: //msdn.microsoft.com/en-us/library/w8h3skw9 (VS.71).aspx但 4 文档相当模糊http://msdn.microsoft .com/en-us/library/w8h3skw9.aspx

4

1 回答 1

35

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]
/>
于 2010-09-21T10:53:46.377 回答