2

ログイン時に、coldfusion サーバーは私に aCFIDと a を割り当てますCFTOKEN。後でそれらを使用してCFIDCFTOKENセッションがまだ存在するかどうかを確認するにはどうすればよいですか。

言い換えれば、セッションがそれらに関連し、まだ存在するかどうかCFIDを伝える機能が必要です。CFTOKENCFIDCFTOKEN

ありがとう

4

2 に答える 2

8

これを実現する最も簡単な方法は、ユーザーのログイン時にセッションにフラグを設定することです。

例えば

<cfset session.loggedin = true />

次に、ユーザーがまだ有効なセッションを持っているかどうかを確認したいときに実行できます

<cfparam name="session.loggedin" default="false" />
<cfif NOT session.loggedin>
  <!--- do something here --->
</cfif>
于 2012-12-09T15:37:41.037 に答える
1

Chris の回答に問題はなく、通常、セッションをチェックするときの標準的な基準です。

これらの 2 つの Cookie は、ブラウザーをセッションに「リンク」するためのものであり、実際にそのセッションを維持するためのものではありません (実際、これらの Cookie は 30 年 (?) で有効期限が切れるように設定されており、使用している場合でも無視されますJ2EE session management。間違っていません)。ドキュメントから:

クライアント変数とセッション変数を使用するには、ColdFusion がクライアントを識別できる必要があります。これは通常、クライアントのシステムで次の 2 つの Cookie 値を設定することによって行われます。

CFID:シーケンシャルなクライアント識別子

CFToken:乱数のクライアント セキュリティ トークン これらの Cookie は、ColdFusion に対してクライアントを一意に識別し、変数のコピーを Session および Client スコープの一部として保持します。

ここで読むことができるように、Ben Nadel は、有効期限が切れた後に CF が同じCookieCFIDとCookie を使用して新しいセッションを作成する場所をいじりました。CFTOKENCFIDCFTOKEN

「ColdFusion の適切な」方法については、認証の処理を支援することを目的としたCFLOGINその他のセキュリティ タグの使用を検討できますが、クリスが示したようにセッションを維持するのは非常に簡単であるため、多くの人がそれを使用しているとは思いません。

于 2012-12-10T12:15:05.617 に答える