coldfusion - 当有多个 Application.cfc 时,您将如何保持用户登录
问题描述
我继承了一个旧的 Coldfusion 应用程序。此应用程序有一个主站点和 7 个子站点。主站点和每个子站点都有自己的 Application.cfc。
非常像 Adobe 网站上的这个例子(右下角的图表是 Bandwith Associates):https ://helpx.adobe.com/coldfusion/developing-applications/developing-cfml-applications/designing-and-optimizing-a-冷融合应用程序/结构化应用程序.html
我已经构建了一个身份验证系统,它将通过会话变量在主级别登录用户。但是,当他们单击或重新定位到任何子站点时,所有会话变量都会消失。正如他们应该的那样,因为 Coldfusion 不会在用户所在的当前目录中找到任何其他 application.cfc 文件。
我希望我不必从每个子站点中删除 7 个 application.cfc 文件。因为这将涉及重写每个子站点。我只是希望他们能够保持登录状态(而不必登录多个子应用程序。
无需代码。我只需要一个可行的高级计划。最终,我将在一个子站点上实施它,看看它是否有效。如果是这样,那么我将在其余的子站点上实施它。
预期的结果应该是用户在他们的会话中保持登录状态,无论他们在此过程中访问了 7 个子站点中的哪个子站点。它们都具有相同的外观和感觉,因此对最终用户来说非常无缝。
附加背景:这个站点曾经有windows认证,现在我们将使用一个典型的应用程序登录过程。
解决方案
可以通过对每个 Application.cfc 或 Application.cfm 使用相同的应用程序名称来共享会话范围。
应用程序.cfc
放
<cfset THIS.name = "my_app">
在所有 Application.cfc 文件的正文中。(不要把它放在函数里面!)
应用程序.cfm
<cfapplication name="my_app">
在所有 Application.cfm 文件中。确保在访问 SESSION 范围之前放置标签。
注意: my_app
显然只是一个例子。您可以使用任何名称,但我建议您保留字母数字且长度小于 32 个字符。Adobe ColdFusion 在使用“外来”应用程序名称时有一些奇怪的错误。
推荐阅读
- linux - 如何在 bash 中移动/分组特定文件夹?
- ios - iOS 应用程序未收到 UDP 广播数据报
- reactjs - 如何在组件道具界面中键入 mapDispatchToProps
- react-native - React Native:如何在 react native v5(不是 v4)中将多个 stackNavigator 包含到一个 DrawerNavigator 中
- reactjs - CDataTable (Core UI React) prop onPageChange 触发 2 次
- image - 网站更新清除所有客户端设备上的缓存,以便更新图像和内容
- r - 一个矩阵的行名和列名到另一个矩阵
- angular - 如何使用角度中的elementRef在一个分区中搜索选定的复选框
- javascript - React Material UI OutlinedInput 不显示错误信息
- mysql - 从当前行和上一行计算 2 列