【问题标题】:MVC AntiForgeryToken machinekey for encryption用于加密的 MVC AntiForgeryToken 机器密钥
【发布时间】:2014-10-05 07:03:46
【问题描述】:

我知道:在幕后,MVC AntiForgeryToken 属性使用机器密钥进行加密。如果您未在 web.config 中指定机器密钥,ASP.NET 会自动为您生成一个。

如果重新启动 ASP.NET 应用程序(例如执行 iisreset),浏览器 cookie 中的 AntiForgeryToken 仍将使用旧机器密钥加密,因此它为什么会因上述错误而崩溃。

我担心的是

在 web.config 中写入机器密钥之前,我想知道我应该在哪里寻找机器密钥以在 web.config 中复制和粘贴。当我们在本地电脑上进行测试时,我们可以在 web.config 中复制并粘贴机器密钥,但是当我们将网站托管在 godady 或 ORCSWEB 中的共享环境中时,这些公司可能不会提供我们网站所在的电脑的机器密钥托管。所以我需要知道如何处理这种情况。谢谢

编辑

<configuration>
    <system.web>
        <machineKey  
            validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
            decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
            validation="SHA1"
            decryption="AES"
        />

如何分别获取或生成validationKey和decryptionKey?有什么想法吗?

【问题讨论】:

    标签: asp.net-mvc antiforgerytoken


    【解决方案1】:

    如果重新启动 ASP.NET 应用程序(例如执行 iisreset),则 浏览器 cookie 中的 AntiForgeryToken 仍将被加密 用旧机器钥匙???

    我认为 iisreset 不会更改机器密钥。

    您可以自己生成机器密钥(验证和解密密钥)并在 web.config 中指定。在执行加密的所有情况下都将使用相同的密钥,例如验证票证,AF Token。

    很好的介绍link

    更新:

    如何生成机器密钥?

    有多种方法,msdn blog 建议使用 IIS,因为使用 Microsoft 工具,它对我来说看起来更安全。但是,似乎此功能仅在 IIS 7 之前才受支持。我在我的盒子 IIS 8.5 上找不到它。我检查了 IIS 7.5,但它也不存在。但是,我在 IIS 6.1 的同事框上找到了它。

    第二种选择是使用自定义密钥生成器

    一个。 Machine Key Generator(在线)

    b. ASP.NET machineKey Generator(可以修改的工具)

    【讨论】:

    • 我更新了关于validationKey 和decryptionKey 的问题。请查看并指导plzz。
    • 您是否检查了我在回答中提供的链接?
    • 我检查了链接,但没有找到如何为validationKey 和decryptionKey 生成密钥。请提供任何此类链接,以指导我为validationKey 和decryptionKey 生成密钥。谢谢
    • 请查看我的更新答案,希望能帮助您实现目标。 :)
    • 不建议使用任何在线机器密钥生成工具。
    猜你喜欢
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多