2

さまざまなタイプのユーザーがいるアプリケーションがあります。ユーザータイプに基づいて 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 が秒単位ではなく日単位で表示されるのはなぜですか?

4

4 に答える 4