And*_*ock 24 asp.net machinekey
我在哪里可以找到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"
/>
Run Code Online (Sandbox Code Playgroud)
编辑: 1.1文档似乎相当明确wrt默认值:http://msdn.microsoft.com/en-us/library/w8h3skw9( VS.71) .aspx但4个文档相当模糊http://msdn.microsoft .COM/EN-US /库/ w8h3skw9.aspx
Jag*_*mag 34
machineKey正在System.web进入web.config
请参阅web.config架构的MSDN链接.
如果你在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" />
Run Code Online (Sandbox Code Playgroud)
编辑:对于.NET 4.0,默认算法已更改为SHA256 我认为找到默认值的最简单方法是在MSDN中查看此配置值的条目.
机密密钥的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]
/>
Run Code Online (Sandbox Code Playgroud)