0

「メンバー」ページに移動するログイン ページにユーザー名/パスワードがあります。基本的に、SQL クエリの行数を見つけるステートメントを使用しました。それが 1 でない場合 (正しいユーザー名とパスワードの組み合わせ)、ログイン ページにリダイレクトされます。

ただし、「メンバー」ページには、SQL を使用してテーブルに新しい行を追加したり、結合されたテーブルのクエリを返したりするなど、さまざまなことを行うためのフォームがあります。これらのフォームもこの「メンバー」ページにリンクしていますが、ログインの条件 (ユーザー名変数とパスワード変数が必要です) は満たされなくなります。

では、ユーザーがログオンしているかどうかをサーバーに記憶させるにはどうすればよいでしょうか。

4

1 に答える 1

9

application.cfmまたはapplication.cfcで、sessionManagement = trueを有効にして、ページリクエスト全体で変数の追跡を開始できるようにする必要があります。次に、ユーザーがログインするときに、isAuthenticated=trueのような変数を設定します。isAuthenticated = falseまたはundefinedの場合にのみログインページにリダイレクトします(Application.cfmのonSessionStartでcfparamを使用してデフォルトを設定できます)

大まかな例として、ColdFusion9+ Application.cfcを使用していると仮定します。

component {
    this.name = 'myApplication';
    this.SessionManagement = true;

    public function onSessionStart() {
        param name='session.isAuthenticated' default=false;
    }
}

checkAuthentication.cfm

<cfscript>
if (!session.isAuthenticated) {
    // send to login page
}
</cfscript>

ログイン処理ページで、session.isAuthenticatedがtrueに設定されていることを確認してください。そうすると、ログインの確認/要求をスキップする必要があります。CFLOGINに組み込まれている認証機能を調べることもできます。

それが少し役立つことを願っています。

于 2013-03-01T09:46:50.660 に答える