2012-02-10 13 views
1

xml webserviceを介したリモートデータベースに対して認証するログイン機能があります。ログインに成功すると、ログインしているユーザーのために、サイトの前後にある一連のセッション変数(メンバーのみのコンテンツなど)を設定します。これはすべて正常に動作します。1つのapplication.cfmから別のapplication.cfmへのColdFusionセッション変数へのアクセス

私たちは店舗を立ち上げており、メンバー価格、プレフィックスフォームなどのセッション変数にアクセスしたいと考えています。今のところは、ストアへのリンクは唯一のメンバーがログインした後に利用可能である私はそうのように、リンク内のURLトークンを含めています:。

https://mysite.com/store/index.cfm?<cfoutput>#session.urltoken#</cfoutput> 

同じCFID、CFTOKENを示しストアページでセッションをCFdumpingとjsessionidをログインページから取得したので、セッションは正しく維持されていると思います。しかし、セッション変数はダンプには表示されません。また、それらを参照しようとすると「セッションが未定義です」というエラーが表示されます。

これは、http> http、https> https、または他の組み合わせでログインからストアに移動した場合に発生します。それはすべて同じサーバー上にあります。私はこれを解決するための助けに感謝するか、誰かが私たちの目標を達成するためのより良い提案を持っている場合、私は本当にそれもありがとう!もう一度、私がやりたいことは、店舗に、店舗のホームページに最初に到着したときにログインしたメンバーをそのように認識させることです。どうもありがとう!

+0

完全なURLが同じであることを確認しましたか(つまり、両側にmysite.comまたはwww.mysite.com)?それ以外の場合は、コードが機能するはずです。 –

+0

あなたは同じアプリケーション内にいますか?言い換えれば、 'application.applicationname'はどちらの場合も同じですか? – ale

+0

こんにちはBillyさん、こんにちは、ありがとう、URLは同じです - 彼らは両方とも同じサイトの一部です。つまり、過去のhttps://mysite.com/login.cfmを取得するとセッション変数が設定され、https:// mysiteへのリンクが提供されます.com/store/index.cfm。アル、私は今アプリケーションの設定を確認しています...ありがとう! – daltec

答えて

0

両方のアプリケーションが、彼らは別の名前を持っている場合は、すべてのアプリケーションのセッション変数は、そのアプリケーションに固有のものと同じ名前に

を持っている必要があります。

したがって、application.cfmでは、コンストラクタでthis.nameを使用して設定できるapplication.cfcがある場合は、nameが に設定されていることを確認してください。

+1

質問を読み返した後、何が起こっているのか理解できていないようです。それらが別々のアプリケーションであることは知られていません。参照しているページの両方が同じアプリにあるように聞こえるので、「両方のアプリケーション」というようなことはないかもしれませんが、コンテキストスイッチでセッションが失われていますSSLとの間で送受信されます。 –

+0

その可能性のある名前が異なるか、セッション変数が有効になっていない可能性があります。 –

+0

私は1つのフォルダ、1つのアプリケーション、1つのapplication.cfm、Webサーバーの2つの異なるサイトとして読んでいますが、タイトルを読んでいる、おそらくそうではない –

-1

サーバースコープを使用できます。サーバセッションにコピーするには

<cfset server.sharedSession[session.urlToken]=session> 

<cfloop collection='#server.sharedSession['#url.urlToken#']#" index="i"> 
    <cfset session[i]=servers.sharedSession['#url.urlToken#'][i]> 
</cfloop> 

あなただけのセッション全体をコピーすることもできますが、ループを使用すると、ソースセッションでない値を保存することができます。

+0

私はこれが本当に悪い考えだと思います。サーバー変数スコープにトークンを追加してセッション変数を複製しようとしています。何がそれらをきれいにするか、私はセッション変数に固執するなど、それらを時間を計ります。 –

+0

私は同意します:2つの異なるアプリケーションでセッションを同期させたい場合は、HTTPを介して簡単なサービスコールを使用することをお勧めします。しかし、私はそれがここで起こっているとは思わない。私はそれが同じアプリだと思う(あなたの答えに私の応答を参照してください) –

+0

あなたの助けに感謝ビリーとデール!ほんとうにありがとう!詳しく調べると、ここに私が持っているものがあります:1)mysite.com用の1つのルートフォルダ。その中のさまざまなフォルダ(つまり、モバイル、ストア、画像など)。 2)サイトの一部はFarcry CMSを使用します。ルートフォルダには、実際にはapplication.cfc、farcryConstructor.cfm、およびproxyApplication.cfcがあります。ストアフォルダにapplication.cfmがあります。コンストラクタは、application.cfm内のものとは異なる名前のcfsetを実行します。私はいくつかの簡単な編集をする間、ハングアップ...もう一度ありがとう! – daltec

関連する問題