0

私はColdFusion8を使用しています。セッションをタイムアウトするために次の行を使用しています。

<CFAPPLICATION NAME="XXX" 
CLIENTMANAGEMENT="NO" 
SESSIONMANAGEMENT="Yes" 
sessionTimeout="#CreateTimeSpan(0,0,1,0)#">

私は次のようなセッションを作成しています:

if (not structKeyExists(SESSION, "UserInfo")) {
    SESSION.UserInfo = structNew();
}

1分後にセッションがタイムアウトすることを期待しています。これは正しく機能していません。数字のすべての組み合わせを試しましたが、セッションがタイムアウトすることはありません。週末中ずっと働いていなかった(そしてブラウザをシャットダウンした)後でも、私のセッションはまだ稼働しています。

セッションがタイムアウトしないのはなぜですか?

編集〜私のセッションがタイムアウトしていないことの私の証拠は、セッションスコープ内の特定の情報でサイトにアクセスでき、そのブラウザを数週間使用しなくても死ぬことはないということです。

1)XXXProd、2)XXXStage、および3)XXXDevという3つの異なる名前を持つ3つのサイトがあります。

4

1 に答える 1

1

J2EEセッションへの切り替えを検討しましたか?

<cfscript>
    session.setMaxInactiveInterval(1);
    getPageContext().getSession().invalidate();
</cfscript>
<cfcookie name="jsessionid" expires="now">
<cflocaton url="/" addtoken="false">

これにより、セッションに関するCookieとColdFusionの知識が失われるだけでなく、基になるセッションも殺されます。また、そのように「セッションレス」ページリクエストを行う必要はありません。

現在の状況では、サーバーモニターで、セッションが作成および破棄されていることを確認できますか?

于 2012-08-07T09:33:44.200 に答える