1

我想解密 FormsAuthentication cookie,但它可能已使用不同的机器密钥加密。我希望能够尝试使用 3 个机器密钥连续解密并检查其中一个是否正常工作。如果 FormsAuthentication.Decrypt() 不仅接受加密的 cookie 还接受要使用的机器密钥,这将很容易,但没有办法做到这一点(机器密钥总是从配置文件中检索)。有没有办法实现我想要做的事情?

4

1 回答 1

1

无法在 <machineKey> 元素中指定多个键。但是,如果您有加密背景,您可以实现自己的允许密钥轮换的 DataProtector。有关详细信息,请参阅http://blogs.msdn.com/b/webdev/archive/2012/10/23/cryptographic-improvements-in-asp-net-4-5-pt-2.aspx介绍 DataProtector部分) .

警告:编写自己的 DataProtector 是一种非常高级的方案,只有在您具有安全背景并且熟悉加密原语的情况下才应尝试。很容易引入可能破坏站点安全的细微错误。

于 2014-03-26T16:06:43.650 回答