2010-12-13 5 views
1

セッションイネーブラーを使用してApplication.cfmをそのディレクトリに追加するだけで、ColdFusionアプリケーションの特定の部分に対してセッションを有効にする方法はありますか?例えばColdFusionアプリケーションの特定のセクションへのセッションスコープはありますか?

、以下の持っているウェブサイト:

  • /エクストラネット
  • /イントラネット
  • /ストア
  • /レンタル

私はセッション変数を使用したいですレンタルセクションは、イントラネットとストアのものとは独立しています。あなたはは、セッション変数を共有したい、とアプリケーション変数を共有することはない必要をしない

答えて

2

場合、それは簡単です。セッション変数にアクセスするコンテキストのルートに別のApplication.cfc(または.cfm)を置くだけです。だから、

あなたは/エクストラネットでのセッションをしたい場合、および/イントラネット内のセッション、その後、それらが同じアプリケーションになりたくない:

/extranet/Application.cfc:

component { 
    this.name = "extranet"; 
    this.sessionmanagement = true; 
} 

/intranet/Application.cfc:あなたは本当にあなたがApplication.cfcのでできることのすべてを上の速度まではないよう

component { 
    this.name = "intranet"; 
    this.sessionmanagement = true; 
} 

に聞こえるので、私はまた、そのthis is a really good referenceを追加します。学ぶべきことはたくさんありますが、それがどのように機能するかを理解すればかなり簡単です。

+0

私はこれを使用して以来、長い時間がかかりました。私がしたいのは、誰かがプロパティを予約しようとしたときに、セッションIDを使用して構造体に格納する準備ができているため、構造体データをWebサービス呼び出しに渡して構造体をクリアできます。各ページで誰が誰であるか、セッション/構造体にアクセスする方法を知る方法が必要です。参照ページでこれをすべて行う必要がありますか? – Kevin

+0

私は本当に従っていない、申し訳ありません。抽象的な言葉で少し話すことができますか?おそらくより具体的な情報で質問を更新してください。 –

+0

Application.cfmが私の努力を妨害していたようです。代わりにcfcookieを使うべきですか? CFドキュメントは、セッション変数に対してstruct関数を使用しないと言っています。それにはどんな重みですか? – Kevin

0

おそらくシングルサインオン(SSO)ソリューションが役立つでしょうか?セッション構造体の値を囲むのではなく、あるアプリから別のアプリにユーザーIDを渡すだけです。ユーザーがエクストラネットからレンタルに移行すると、アプリは「ここにユーザー#45が来る」と言いますが、レンタルアプリはdb内でそれらを検索し、エクストラネットが誰であるのかを確認してから、レンタルでの新しいセッション。

関連する問題