代码之家  ›  专栏  ›  技术社区  ›  dtc

什么会导致asp.net 忘记用户的应用程序?

  •  4
  • dtc  · 技术社区  · 14 年前

    我正在使用成员资格提供者,当选择“记住”登录时,它会在会话期间记住它。我甚至可以关闭浏览器,重新启动和回来,它仍然会被登录。但过了一段时间,它就忘记了,似乎在任何一个旧的时间都会这样做。我曾经登录过,当我转到一个新页面时,它被注销了。

    其他奇怪的事情是:

    1. 我在同一台服务器上有另一个应用程序,它会永远记住登录名。我比较了他们如何处理登录,他们似乎是相同的。

    这使我相信问题与服务器有关,或者可能与应用程序中与登录和成员代码不直接相关的内容有关。我能看什么?

    编辑: 用Fiddler查了一下饼干,他们看起来还可以。 expires=周一,2010年9月6日01:47:51 GMT

    2 回复  |  直到 14 年前
        1
  •  4
  •   Pixel camickr    14 年前

    有两种主要的可能性。

    1. Cookie过期。如果cookie过期/消失,则认为您已注销。

    2. Cookie无效。登录cookies是基于machineKey值加密的。如果未指定machineKey,则每次启动(或回收)应用程序池时都会重新生成一个新的machineKey。这意味着使用旧machineKey加密的任何登录cookie现在都是无效的,您将不会被视为已登录。

    检查IIS中应用程序池上的回收设置,并查看该设置是否与您未登录的时间对应。

        2
  •  3
  •   Dave Swersky    14 年前

    “记住我”功能是使用cookies完成的。Cookies可以设置过期日期。您需要查看cookie是如何设置的(Fiddler很适合这样做,您可以在设置cookie时检查HTTP头)