我有一个具有不同类型用户的应用程序。我需要根据用户类型设置 sessionTimeout。例如管理员 30 分钟,用户 10 分钟。为此,我在 application.cfc 中设置了 30 分钟的默认 sessionTimeout
<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 方法中,我编写了一个代码来检查 loginIn 用户类型并相应地设置 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 分钟后也没有结束。有人可以帮忙吗?如何在应用程序中实现两个不同的 sessionTimeout?另外,为什么我再次设置 sessionTimeout 后它会以天而不是秒显示 sessionTimeout?