如何使用FormsAuthentication.Decrypt()显式指定MachineKey

时间:2014-03-26 15:30:31

标签: cookies encryption formsauthentication

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

1 个答案:

答案 0 :(得分: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是一种非常高级的方案,只有在您具有安全背景并且习惯使用加密基元时才应尝试。引入可能破坏网站安全性的细微漏洞非常容易。