【问题标题】:Persisting .aspxauth membership cookie持久化 .aspxauth 会员 cookie
【发布时间】:2015-09-14 14:41:01
【问题描述】:

我最近将一个网站从一个主机移动到另一个主机。

在迁移之前,表单身份验证正常工作,用户跨会话保持登录状态。

迁移后用户在看似随机的一段时间后退出。

我检查了网络流量,并且 .aspxauth cookie 正在发送到服务器。

我在本地调试了问题并再次发送了 cookie,但它没有出现在 Request.Cookies 中。 Google 告诉我这是因为如果 ASP.NET 无法解密 .aspxauth cookie,那么它会偷偷地将其从 Request.Cookies 集合中删除。

谢谢

【问题讨论】:

    标签: asp.net cookies forms-authentication .aspxauth


    【解决方案1】:

    ASP.NET 无法解密它自己加密的 cookie 似乎有点荒谬,但这确实发生了。

    为了加密 cookie,ASP.NET 使用 web.config 或 machine.config 中的 MachineKey 设置。不幸的是,这个“AutoGenerate,IsolateApps”的默认设置,在这种情况下,每次应用程序池循环时 ASP.NET 都会生成一个新值,因此无法读取现有的 cookie。

    解决这个问题的方法是在 web.config 或 machine.config 中指定一个键,有一些在线工具可以生成一个(例如http://www.developerfusion.com/tools/generatemachinekey/)和一些更偏执的离线工具(http://www.codeproject.com/Articles/16645/ASP-NET-machineKey-Generator )

    完成后应该如下所示:

    <machineKey
    validationKey="12365A372...etc...34897"
    decryptionKey="A76568...etc...1239847FD"
    validation="SHA1" decryption="AES">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2016-04-24
      • 2013-03-06
      • 2016-06-24
      • 2012-08-09
      • 2011-02-20
      • 1970-01-01
      相关资源
      最近更新 更多