2011-08-08 53 views

答えて

3

に役立つセッションを殺すために最も効果的な方法は、現在の値を持つJSESSIONIDクッキーを期限切れにあるように、それはそうです。

<cfcookie name="jsessionid" expires="now"/> 

これは明らかにJ2EEセッション変数の使用を前提としています。

J2EEセッション変数が使用されていない場合、セッション変数とクライアント変数の両方がCFID変数とCFTOKENクッキー変数のキーで設定されているようです。つまり、セッションを強制終了する唯一の方法は、現在の値でこれらのクッキーを期限切れにすることです。

<cfcookie name="cftoken" expires="now"/> 
<cfcookie name="cfid" expires="now"/> 

このメソッドは、クライアント変数も無効にします。

J2EEセッション変数を使用しないで、クライアント変数を強制終了せずにセッションを終了させる最善の方法のようです。ブラウザで終了し、application.cfc要求処理でその値をチェックするセッションCookieを作成することです。値が存在しない場合は、セッション構造体をクリアします。

+0

それも私を助けて、thx! – Nich

-1
structDelete(session, "CFTOKEN"); 
structDelete(session, "CFID"); 
structDelete(session, "JESSIONID"); 

構造体からキーを削除しますが、セッションにこれらの変数を「再適用する」問題があるかどうかはわかりません。

+0

これは、クライアント構造から値を削除するだけです。クッキーからも削除する必要があります。 –

+0

良い点。とにかく私は自分のものよりもジェイソンの答えが好きです。 :D –

6

これは簡単に言われたことの1つです。

私が調査して以来、しばらくお待ちしておりますので、トラブルシューティングが必要な場合があることをご理解のうえご利用ください。

Java EEセッションの場合、セッションでinvalidate()を呼び出すことができるので、少し簡単だと思います。しかし、残念ながら、それは戦いの半分に過ぎません。あなたは本当に解決すべきいくつかの問題があります。彼らは

  1. あなたが必要とするすべての既存のセッションデータを格納するためのいくつかの方法を探す(シリアライズおよび店舗)

  2. は、Java EEおよびCFの両方のセッションで古いセッション(可能性を無効にそれを行う方法です文書化されたCFセッション)で

  3. は新しいセッションを作成し、古いクッキーを期限切れ

  4. これはあまりにもトリッキー思えないかもしれません

新しいセッションのためにあなたが新しいセッションに手順1で保存された古いセッションから

  • 設定し、新しいクッキーをデータをコピーし、潜在的に難しい部分がありますリクエストが行われ、レスポンスが返されるまでクッキーが設定されない限り、セッションは通常作成されないため、1つのリクエストで処理します。

    古いセッションでinvalidate()を呼び出し、getRequestContext()を呼び出してgetSession()を呼び出すことができるので、Java EEを使用するのが最も簡単だと思います(これが当てはまると思いますJava EEセッションでのみ動作します)。

    私はCFセッションでこれらの作業を行う方法を考えていましたが、私が考えることができるのは、新しいセッションが新しいセッションを作成できるようにサイトのページに新しいセッションを作成することです作成した。 CFHTTPレスポンスには新しいクッキーがあり、古いクッキーを期限切れにして、タグを使って新しいクッキーを設定することができます。

    希望これはテストの全体の束を実行した後

  • +0

    ヘイ・ジェイソンは、物事のCFHTTPの終わりに、その応答がクライアントから来るのではなく、サーバーからサーバーに来るだろうか?その場合、クライアントは新しいセッションをセットアップしません。いつものように、Ben Nadelは強制的にセッションを終了する方法についていくつかのアイディアを持っています(http://www.bennadel.com/blog/1847-Explicitly-Ending-A-ColdFusion-Session.htm) –

    +0

    これはステップ6の目的です。 CFHTTP要求(サーバー間要求)からクッキーを収集し、それらを手動でブラウザーに戻します。 –

    +0

    ああ、つかまえ:)、それは理にかなっています。 –

    関連する問題