【问题标题】:Should a session timeout or a form authentication timeout log off the user?会话超时或表单身份验证超时是否应该注销用户?
【发布时间】:2011-03-18 11:59:44
【问题描述】:

我有点不明白应该注销用户。

目前我将会话超时设置为 20 分钟,我认为一旦会话到期,用户应该退出。

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

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

我已将身份验证超时更改为 20 分钟,这样就可以了。

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

谢谢

编辑:

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

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

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

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

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

编辑 2:

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

编辑 3:

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

【问题讨论】:

标签: c# web-config forms-authentication session-timeout


【解决方案1】:

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

听上去,您的 Web 表单依赖于正在登录的用户,如果这完全依赖于会话,那么您将需要 ping 服务器以保持会话处于活动状态。

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

【讨论】:

  • 这使它被清除。一旦会话被清除,我实际上对注销用户并不感兴趣。如果用户没有 X、Y、Z 的会话变量,则不应允许用户执行某些操作。另外我不明白为什么让表单身份验证超时与会话超时?我遇到的建议说表单身份验证超时应该是会话超时的两倍。谢谢
【解决方案2】:

Form Authentication 可以设置为使用 cookie 来跟踪用户。这可能就是正在发生的事情。

【讨论】:

    猜你喜欢
    • 2010-12-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多