さまざまなタイプのユーザーがいるアプリケーションがあります。ユーザータイプに基づいて sessionTimeout を設定する必要があります。たとえば、管理者は 30 分、ユーザーは 10 分です。これを行うために、application.cfc でデフォルトの sessionTimeout を 30 分に設定しました。
<cfcomponent output="false" extends="org.corfield.framework">
<cfset this.applicationTimeout = createTimeSpan(1,0,0,0) />
<cfset this.sessionManagement = true />
<cfset this.sessionTimeout = createTimeSpan(0,0,30,0) />
.............
............
</cfcomponent>
アプリケーション変数をダンプすると、sessionTimeout が正しい 600 であることがわかります。onRequestStart メソッドで、loggedIn ユーザー タイプを確認し、それに応じて sessionTimeout を設定するコードを記述しました。
<cfif StructKeyExists(session,"user") AND ListLast(CGI.HTTP_REFERER,"/") EQ "login.cfm" >
<cfif session.user.userType EQ "GSA">
<cfset this.sessionTimeout = createTimeSpan(0,0,10,0) />
</cfif>
</cfif>
この後、アプリケーション変数をダンプすると、sessionTimeout が秒単位ではなく日単位で表示されます。また、10分経ってもセッションが終了しません。誰かがこれについて助けることができますか? アプリケーションに2つの異なるsessionTimeoutを実装する方法は? また、sessionTimeout を再度設定すると、sessionTimeout が秒単位ではなく日単位で表示されるのはなぜですか?