【问题标题】:What inputs go into encrypting / creating an ASP.NET Forms Authentication Ticket?加密/创建 ASP.NET 表单身份验证票证需要哪些输入?
【发布时间】:2011-06-15 18:50:33
【问题描述】:

我读到的所有内容都指向 web.config 文件中的 MachineKey 元素,它是唯一决定加密票值的东西,但我目前有很多证据证明这一点。

所以我的问题是:鉴于机器密钥和票证内的数据相同,什么可以使票证加密值(特别是长度)不同?

编辑

我们看到了时间戳导致的值变化。然而,在其中一种环境中,创建的值本身要短得多。其中两个站点(.NET 4、MVC2/3)可以很好地应对它。但是,.NET 2.0 / WebForms 站点无法使用相同的机器密钥对其进行解密。

【问题讨论】:

  • 哇...对有关如何创建表单身份验证票证的合法问题投了反对票。感谢未透露姓名的选民!
  • 如果您向您解释“大量证据”会更好,但我 +1 反对
  • 我希望我的反对者已经传达了这一点......希望我的更新有所帮助
  • 您是否修复了machine.config 中的machineKey 值?
  • 我们在每个应用程序的 web.config 中都有它们。 machine.config 可以覆盖它吗?

标签: asp.net iis-6 forms-authentication formsauthentication formsauthenticationticket


【解决方案1】:

MachineKey 确定如何加密/解密。内容包含时间戳,因此即使您输入相同的数据,也可以解释不同的加密值。

【讨论】:

  • 是的,这种变化不会给我们带来任何麻烦...请参阅上面的更新。
【解决方案2】:

所以,虽然 MachineKey 和加密算法确实决定了产生的加密值,但我们已经确认有definitely patches that can affect machine key encryption / decription.

当我们对一半的网络农场进行修补时,这一点变得很明显,这会产生与其他网络农场不同长度的加密票证。这是一大组补丁,因此我们无法确定导致不同行为的确切补丁。

所以...如果其他人遇到这种非常奇怪的行为,请确保在排除故障时比较应用于每台服务器的补丁和修补程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    相关资源
    最近更新 更多