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

基本的に完全修飾リダイレクトに相当するものを提供する必要があります。デフォルト (「最上位」) サブシステムが「メイン」と呼ばれ、デフォルト セクションが「メイン」と呼ばれる場合、次のようになります。

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