0

这是我对子系统的第一次尝试,大部分情况下进展顺利。会话结束时,我无法将用户从子系统站点重定向到主顶级站点。

这里可能有网站结构,很标准。

  1. 我已经从主站点登录
  2. 根据我的登录,我被重定向到适当的子系统,即(subSite1,subSite2)
  3. 当我的会话结束时,我想重定向到 mainSite.login,而不是将我重定向到 subSite1.login。

我的问题是,如何将用户从子系统站点重定向到 mainSite 登录?

这是我的网站结构。

mainSite
-assets
-contorllers
    -login.cfc
    -security.cfc
-framework
-layouts
-model
-subsystems
    -subSite1
        -controllers
        -layouts
        -model
        -views
            -main
                -default.cfm
        application.cfc
        index.cfm
    -subSite2
        ...
-views
    -login
        -default.cfm (login form)
application.cfc
index.cfm

/mainSite/controllers/security.cfm 直接来自 FW/1 下载,根据我的需要进行了细微更改。我尝试在 authorize() 函数中更新重定向,但没有运气。提前感谢您的见解。

component {

function init( fw ) {
  variables.fw = fw;
}

function session( rc ) {
  // set up the user's session
  session.auth = {};
  session.auth.isLoggedIn = false;
  session.auth.fullname = 'Guest';
}

function authorize( rc ) {
  // check to make sure the user is logged on
  if (not(structKeyExists(session, "auth") && session.auth.isLoggedIn ) && !listfindnocase('login', variables.fw.getSection() ) && !listfindnocase('main.error', variables.fw.getFullyQualifiedAction() )) {
  variables.fw.redirect('login');
  }
}

}
4

2 回答 2

1

您需要提供实质上相当于完全限定重定向的内容。如果您的默认(“顶级”)子系统称为“main”并且默认部分称为“main”,那么它将是这样的:

variables.fw.redirect('main:main.login');
于 2016-04-29T16:20:15.523 回答
-1

通过使用 location(),我能够得到想要的结果。

//variables.fw.redirect('login');
location(url="/mainSite/login");

我想更新这个答案,以防其他人遇到同样的情况。Sean Corfield 在 FW/1 Google 小组中提供了答案。这是链接https://groups.google.com/forum/#!topic/framework-one/0g7TWQLg3Hs

variables.fw.redirect(':login');
于 2016-04-29T17:53:03.120 回答