我们的生产服务器都具有相同的机器密钥。但是,我们的生产和开发系统没有相同的机器密钥。我们得到一堆(大约每秒一个)形式的异常
System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed.
at System.Security.Cryptography.RijndaelManagedTransform.DecryptData()
at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock()
at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData()
at System.Web.UI.Page.DecryptStringWithIV()...
我们在构建后部署代码,.cs 源不存在于生产环境中。aspx 文件存在于生产中。
(我应该在 Stack Overflow 上发帖吗?这不是编码问题。)
通过实验,我们发现使用 dev 机器键值会导致异常消失。有没有人有我可以与安全团队一起使用的关于在编译和部署时需要相同密钥的文档?