FW / 1子系统 - 重定向到热门网站

时间:2016-04-29 16:16:09

标签: coldfusion coldfusion-9 coldfusion-10 coldfusion-11 fw1

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

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

  1. 我已从mainSite
  2. 登录
  3. 根据我的登录信息,我被重定向到相应的子系统,即(subSite1,subSite2)
  4. 当我的会话结束时,我想重定向到mainSite.login,而不是将我重定向到subSite1.login。
  5. 我的问题是,如何将用户从子系统站点重定向到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');
      }
    }
    
    }
    

2 个答案:

答案 0 :(得分:1)

您需要提供基本上相当于完全限定重定向的内容。如果您的默认("顶级")子系统被调用" main"默认部分名为" main"然后就是这样:

variables.fw.redirect('main:main.login');

答案 1 :(得分:-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');