【问题标题】:ASP.NET machineKey config section default locationASP.NET machineKey 配置部分默认位置
【发布时间】:2010-09-21 19:21:53
【问题描述】:

在哪里可以找到 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 文档似乎相当清楚 wrt 默认值:http://msdn.microsoft.com/en-us/library/w8h3skw9(VS.71).aspx 但 4 文档相当模棱两可 http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx

【问题讨论】:

    标签: asp.net machinekey


    【解决方案1】:

    machineKey 位于System.web 条目下web.config

    请参阅 MSDN link 了解 web.config 架构。

    如果您在 web.config 中没有看到它,您可以在其中添加它。

    再次来自MSDN :-)

    为了提供防篡改 ViewState,从 ViewState 内容生成散列消息身份验证代码 (HMAC),并在后续请求中比较散列。 validation 属性指示使用哪种散列算法,默认为 SHA1,它使用 HMACSHA1 算法。 散列的有效选择包括 SHA1 或 MD5,尽管 SHA1 更可取,因为它产生更大的散列并且被认为在密码学上比 MD5 更强。的validationKey 属性与ViewState 内容一起使用来生成HMAC。如果您的应用程序安装在 Web 场中,则需要将 validationKey 从 AutoGenerate,IsolateApps 更改为特定的手动生成的键值。

    &lt;pages&gt;&lt;machineKey&gt; 元素的默认设置在机器级 web.config.cmets 文件中定义。

    对于 machineKey,它们是

    <machineKey validationKey="AutoGenerate,IsolateApps"  
                decryptionKey="AutoGenerate,IsolateApps" 
                validation="SHA1" decryption="Auto" />
    

    编辑: 对于 .NET 4.0,默认算法是 changedSHA256 我认为找到默认值的最简单方法是在 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]
    />
    

    【讨论】:

    • 如果它不存在(它不存在)什么是默认值?
    • 编辑了答案。这有帮助吗?
    • web.config.comments。那个有什么用?只是列出在根web.config 中未指定时将应用的默认值?另外,我喜欢 Windows 搜索不起作用的方式,或者我自己也发现了!谢谢
    • machine.config中设置machinekey有区别吗?例如,如果它仅在 Web.Config 而不是在 machine.config 中定义,那么这适用于网络农场吗?
    • 我刚刚发现的一个有用提示:您可以通过 IIS 7.5 GUI 生成machineKeyblogs.msdn.com/b/amb/archive/2012/07/31/…
    猜你喜欢
    • 2020-12-12
    • 2011-10-02
    • 2013-03-18
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2012-08-26
    • 2013-10-03
    相关资源
    最近更新 更多