我正在部署在开发网络场上的 .Net 4.0 ASP.Net Web 应用程序中通过 FormsAuthentication.Encrypt(data) 将数据加密到 cookie 中。我已经指定了一个 machineKey 属性来对 ValidationKey、DecryptionKey 和 Decryption(算法)进行硬编码。
现在,我正在尝试使用我在开发工作站上构建的应用程序来解密该 cookie。我可以通过 Request.Cookies["CookieName"] 获取 cookie,但是当我尝试通过 FormsAuthentication.Decrypt(encCookie) 解密该值时,出现以下错误:
无法验证数据。在 System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] 修饰符, Int32 开始, Int32 长度, Boolean useValidationSymAlgo, Boolean useLegacyMode, IVType ivType, Boolean signData) 在 System.Web.Security.FormsAuthentication .Decrypt(String encryptedTicket) at TuoVanitySite.Default.Page_Load(Object sender, EventArgs e) in c:\src\ets_2008\main\ebtDev\Sandboxes\rrozinov\TuoVanitySite\TuoVanitySite\Default.aspx.cs:line 22
这是我的网络配置中的模糊(键已删除):
<machineKey
validationKey="keyA"
decryptionKey="keyB"
decryption="3DES"
compatibilityMode="Framework20SP1"/>
有人处理过 machineKey 不够用的这种情况吗?