2

我有一个经过身份验证的网站,它的子目录具有更强的访问要求。任何人都可以注册主网站,但只有网站管理员可以登录子目录。目前,主站点和子目录都有自己的application.cfm文件和登录页面。

我最近从 ColdFusion 8 更新到 CF 10 并且不得不对我的会话处理进行大量重新配置。我现在使用仅会话 cookie 来帮助维护用户在站点中移动时的会话。

随着 CF 10 中行为的这种变化,我担心同样注册到主网站的站点管理员如果在两个应用程序之间来回切换,他们的会话会被打乱(例如,查看他们是否可以复制一个用户的问题或在登录主站点时查找数据库详细信息)。

主站点和子目录的凭据都来自同一个用户数据库,站点管理员拥有一个允许他们额外访问的标志。我可以轻松编写一个脚本来检查用户是否登录了主站点或子目录,并在他们更改位置时适当地引导他们。

底线,在 CF 10 世界中,我是否需要第二个application.cfm,然后,该子目录需要第二组会话变量?

注意:我已经查看了Coldfusion 跨站点身份验证Can you have multiple cfapplications in an application.cfm?条目,虽然它们在这里有很多好东西,但不能完全回答我的问题。)

4

2 回答 2

2

不,没有必要拥有多个 application.cfm/cfc 文件。甚至没有必要拥有第一个。但是,拥有多个也不一定是坏事。如果您有多个,则可以对子目录进行不同的 onerror 和 onrequest 处理,前提是这对您的目标有益。

我更喜欢只使用一个 application.cfc,以便我的所有应用程序路由/身份验证/错误处理都是预先完成的,而不是在主应用程序和管理区域之间进行拆分,并且我不必处理每个用户的多个会话。

于 2014-07-30T14:58:20.050 回答
0

如果你有session变量在application.cfmparent directory,可以只是<cfinclude>它在application.cfm文件中subdirectory。这样您也可以对子目录中的文件具有相同的会话值。

示例application.cfmsubdirectory:

<cfinclude template="/home_directory/application.cfm" />

注意:这里不需要使用<cfapplication>标签。

于 2017-12-21T13:15:32.487 回答