我有一个asp.net应用程序,在一段时间后似乎会忘记用户已登录。
我使用成员资格提供程序,当选择“记住”登录时,它在会话期间记住它。我甚至可以关闭浏览器,重新启动并返回,它仍然会保持登录状态。但是过了一段时间后,它就会忘记,而且似乎是在任何时间都可能发生。有一次我登录后,当我转到新页面时,它就退出了登录。
其他奇怪的事情是:
1. 在我的开发机器上,它会永久记住登录状态。即使IIS重新启动和重新编译,它也会按预期记住我的登录状态。 2. 我在同一台服务器上还有另一个应用程序,它可以永远记住登录状态。我比较了它们如何处理登录,它们似乎是相同的。
这让我相信问题与服务器或可能与登录和成员资格代码不直接相关的应用程序中的某些内容有关。我该看什么?
编辑: 使用Fiddler查找了cookie,它们似乎没问题。 今天创建的身份验证cookie将在两周后过期,这是我的配置设置方式:expires=Mon, 06-Sep-2010 01:47:51 GMT
编辑: 问题似乎是应用程序池正在回收,身份验证cookie变得无效,因为它无法再读取,因为机器密钥已更改。解决方法是在web.config中添加machineKey段并提供静态machineKey。
我使用成员资格提供程序,当选择“记住”登录时,它在会话期间记住它。我甚至可以关闭浏览器,重新启动并返回,它仍然会保持登录状态。但是过了一段时间后,它就会忘记,而且似乎是在任何时间都可能发生。有一次我登录后,当我转到新页面时,它就退出了登录。
其他奇怪的事情是:
1. 在我的开发机器上,它会永久记住登录状态。即使IIS重新启动和重新编译,它也会按预期记住我的登录状态。 2. 我在同一台服务器上还有另一个应用程序,它可以永远记住登录状态。我比较了它们如何处理登录,它们似乎是相同的。
这让我相信问题与服务器或可能与登录和成员资格代码不直接相关的应用程序中的某些内容有关。我该看什么?
编辑: 使用Fiddler查找了cookie,它们似乎没问题。 今天创建的身份验证cookie将在两周后过期,这是我的配置设置方式:expires=Mon, 06-Sep-2010 01:47:51 GMT
编辑: 问题似乎是应用程序池正在回收,身份验证cookie变得无效,因为它无法再读取,因为机器密钥已更改。解决方法是在web.config中添加machineKey段并提供静态machineKey。