我读到的所有内容都指向 web.config 文件中的 MachineKey 元素,它是唯一决定加密票证价值的东西,但目前我有很多证据可以反驳这一点。
所以我的问题是:鉴于机器密钥和票证内的数据相同,什么可以使票证加密值(特别是长度)不同?
编辑
我们看到时间戳导致值的变化。然而,在其中一种环境中,创建的值本身要短得多。其中两个站点(.NET 4、MVC2/3)可以很好地应对它。但是,.NET 2.0 / WebForms 站点无法使用相同的机器密钥对其进行解密。
我读到的所有内容都指向 web.config 文件中的 MachineKey 元素,它是唯一决定加密票证价值的东西,但目前我有很多证据可以反驳这一点。
所以我的问题是:鉴于机器密钥和票证内的数据相同,什么可以使票证加密值(特别是长度)不同?
编辑
我们看到时间戳导致值的变化。然而,在其中一种环境中,创建的值本身要短得多。其中两个站点(.NET 4、MVC2/3)可以很好地应对它。但是,.NET 2.0 / WebForms 站点无法使用相同的机器密钥对其进行解密。
MachineKey 确定如何加密/解密。内容包括时间戳,因此即使您输入相同的数据,也可以解释不同的加密值。
因此,虽然 MachineKey 和加密算法确实决定了产生的加密值,但我们已经确认肯定存在可能影响机器密钥加密/解密的补丁。
当我们的一半网络农场被修补时,这一点变得很明显,它产生了长度不同的加密票。这是一大组补丁,因此我们无法确定导致不同行为的确切补丁。
所以......如果其他人遇到这种非常奇怪的行为,请确保在故障排除时比较应用于每台服务器的补丁和修补程序。