Tho*_*mas 4 asp.net-mvc antiforgerytoken
我开始知道:在幕后,MVC AntiForgeryToken属性使用machinekey进行加密.如果未在web.config中指定machinekey,则ASP.NET会自动为您生成一个.
如果重新启动ASP.NET应用程序(例如,执行iisreset),浏览器cookie中的AntiForgeryToken仍将使用旧机器密钥加密,因此它会因上述错误而崩溃.
在web.config中写入机器密钥之前我想知道我应该在web.config中查找要复制和粘贴的机器密钥的位置.当我们在本地PC上进行测试时,我们可以在web.config中复制并粘贴机器密钥,但是当我们将在godady或ORCSWEB中托管我们的网站时,那些公司可能不会给我们的网站的机器密钥主办.所以我需要知道如何处理这种情况.谢谢
<configuration>
<system.web>
<machineKey
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>
Run Code Online (Sandbox Code Playgroud)
如何单独获取或生成validationKey&decryptionKey?任何的想法?
如果重新启动ASP.NET应用程序(例如,执行iisreset),浏览器cookie中的AntiForgeryToken仍将使用旧机器密钥加密???
我认为机器密钥不会随iisreset而改变.
您可以自己生成机器密钥(验证和解密密钥)并在web.config中指定它.在执行加密的所有情况下将使用相同的密钥,例如Auth故障单,AF令牌.
一个很好的介绍链接.
更新:
如何生成机器密钥?
有各种各样的方式,这个msdn博客建议使用IIS,当我使用Microsoft工具时,它对我来说看起来更安全.但是,似乎只有IIS 7才支持此功能.我在IIS 8.5的盒子上找不到它.我检查了IIS 7.5,它也不在那里.但是,我在同事箱中的IIS 6.1中找到了它.
第二种选择是使用自定义密钥生成器
一个.机器密钥生成器(在线)
湾 ASP.NET machineKey Generator(你可以修改的工具)
| 归档时间: |
|
| 查看次数: |
7799 次 |
| 最近记录: |