当前位置:  开发笔记 > 后端 > 正文

表单身份验证何时不应超时?

如何解决《表单身份验证何时不应超时?》经验,为你挑选了1个好方法。

我有一个ASP.NET应用程序的问题,这让我疯了.

当用户使页面处于非活动状态一段时间时,会话超时并且由于会话变量无法解析而引发错误(我将错误地捕获此信息,但这不是问题).我编写了一个'defribulator',它将在会话超时的一半到期后执行不可见的回发,这似乎工作正常 - 即使会话超时设置为20分钟,应用程序停留30分钟也不会导致错误.然而,今天早上其他开发者之一经历了超时 - 这怎么可能?

在进一步调查时,我认为当超出表单身份验证超时时会出现问题 - 即使defribulator已经(显然)保持会话处于活动状态.我已经读过,如果在指定的超时时间的一半之后发生回发,则只会重新发出身份验证票据,这不是问题,因为defrib将在超时期间的后半段发出请求 - 所以为什么是它没有重新发行?

我想我可以通过将身份验证超时设置为8小时左右来解决问题,但这是一个糟糕的修复.

任何人都可以对此有所了解吗?

提前致谢

[编辑24/11/2008]审查日志文件已经证明具有启发性和令人困惑.我可以看到defribulator在10分钟不活动后触发,但是当Session_Id似乎始终是合理的时,表单身份验证票证ID会发生变化 - 不确定是否应该.我现在正在制定测试计划,并在完成测试计划后回复.感谢迄今为止提供反馈的所有人.

[编辑24/11/2008]好吧我很难过 - 现在看来工作正常!当defrib运行(ID更改)并且正在维护会话时,将重新生成身份验证票证.这是服务器问题 - 无法分辨.我以前经历过这个问题,从来没有深究过这个问题而且非常令人沮丧 - 当然不应该这么困难.我将不得不放弃这个时间,因为我必须继续应用程序的其他方面.我只需围绕这个问题编写代码 - 这可能永远不会发生在客户网站上.

再次感谢每个人的意见 - 如果我取得任何进展,我会将其发回这里.



1> Aaron Fische..:

当iis回收或终止应用程序池时,也可能发生这种情况.

您可能需要检查表单身份验证疑难解答可能是客户端丢失了Cookie.

如果手动生成身份验证票证,则需要在代码中设置超时,而不是web.config

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有