4

我对什么应该注销用户感到有些困惑。

目前我将会话超时设置为 20 分钟,并且我认为一旦会话到期,用户应该被注销。

我可以添加一个在 session_end 上执行此操作的代码。

我在 web.config 中遇到了表单身份验证超时。目前设置为 48 小时。

我已将身份验证超时更改为 20 分钟,这就是工作。

那么会话超时应该注销用户还是应该通过表单身份验证超时来完成?

谢谢

编辑:

我目前面临的是会话变量设置为 0,这很好,因为会话已超时。但我原以为用户也会被注销。

我是否正确地说身份验证数据始终存储在 cookie 中,并且只有在我达到表单身份验证超时后才会清除该 cookie?

因此,我面临的是预期的行为。用户丢失会话但他仍然登录,因为身份验证信息存储在 cookie 中。

在这种情况下,我可以将会话超时设置为与表单身份验证超时完全相同。这里的假设是当用户在网站上执行任何操作时,表单身份验证超时会被刷新。

另一种选择是将代码添加到 sesseion_end 方法中,我将在其中注销用户。

编辑2:

身份验证超时是否与会话超时同时刷新?

编辑3:

遇到了这个“滑动到期重置活动身份验证cookie在单个会话期间的每个请求时到期的时间。” 我相信这是我正在努力实现的目标。如果会话和身份验证超时相同,则每次重置会话超时时都会重置身份验证超时,这应该可以完成工作。欢迎任何反馈...

4

2 回答 2

1

表单身份验证可以设置为使用 cookie 来跟踪用户。这可能就是正在发生的事情。

于 2010-07-20T14:52:17.643 回答
1

我认为这取决于您的 Web 应用程序的性质。大多数常规网站(例如 StackOverflow)不会在会话结束时注销用户。但是,对于安全关键网站(即银行),用户的登录状态取决于会话,通常会缩短到几分钟。

通过它的声音,您的 Web 表单取决于正在登录的用户,如果这完全取决于会话,那么您将需要 ping 服务器以保持会话处于活动状态。

除非表格要求提供安全/个人信息,否则我不会对其完成施加较短的时间限制。这不会是我第一次完成一半的表格,上床睡觉并在早上完成!

于 2010-07-20T15:11:26.083 回答