【问题标题】:Looking for suggestions on how to handle Coldfusion session timeout with cfc寻找有关如何使用 cfc 处理 Coldfusion 会话超时的建议
【发布时间】:2021-06-29 12:48:20
【问题描述】:

目前,我正在处理通过onrequeststart 方法将某人重定向到 CF2018 站点的登录页面。如果未定义cflogin,我将包含loginform.cfm 页面。但是,当我在会话超时后从中恢复时遇到了一个问题,我正在寻找有关如何处理的建议。

假设我有一个管理用户的用户页面,在主索引页面上,我在每一行都有一个按钮,您可以单击该按钮来删除用户。从那里将表单提交到具有删除功能的users.cfc 页面。我还在主用户索引页面上设置页面变量,如页面标题等。如果会话超时并且有人单击登录表单显示的删除按钮并且他们可以登录。它工作得很好,但它会尝试重定向回 cfc 并且此时变量不存在并引发 500 错误。

我正在思考我应该如何处理它。当会话超时时,我应该将它们完全重定向回根目录而不是包含loginform.cfm 模板吗?

感谢任何建议或想法。

【问题讨论】:

  • 让我把显而易见的事情弄清楚,试着增加你的会话超时时间。从您显示页面到有人要删除某些数据的时间,应该不会那么长。
  • 目前设置为 30 分钟。
  • 对不起,但我必须是那个人:你爱上了cflogin,现在你付出了代价。但严肃地说:您可能根本不应该派遣。通过ajax发送删除操作,让delete函数返回一个响应,表示结果(成功/失败,原因)。然后处理响应客户端并显示一个模式对话框,例如“删除未处理,因为您的会话已过期,请在此处重新登录”,并带有一个指向登录表单的链接,该链接在登录后重定向到带有行的主索引页面。
  • @JamesAMohler 人们登录并离开工作站几个小时,回来并期望仍然登录的情况并不少见。有不同的方法来处理这个问题。您可以跟踪客户端的空闲时间,并在 30 分钟后自动显示会话超时的警告。或者您设置一个带有唯一登录令牌的 cookie,该令牌会在会话超时后自动重新登录。
  • @alex 我真的很喜欢这种方法的声音。一个问题。你为什么说我爱上了cflogin?是否有其他/推荐的方法?

标签: coldfusion coldfusion-2018


【解决方案1】:

从那里将表单提交到带有删除功能的 users.cfc 页面。

如果您的表单直接发布到类似

action="users.cfc?method=delete"

然后改成

action="user_delete.cfm"

并在该页面上调用您的 CFC。

这可能对您使用cflogin 进行的onRequestStart() 进程检查做出更好的反应。

我还建议在处理method="post" 的任何删除请求或任何表单处理之前验证cgi.request_method EQ "POST"

【讨论】:

    猜你喜欢
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多