用户登录应用程序后,我需要重置会话标识符。但是我已经尝试了几天,但仍然无法重置 jsessionid cookie,如果确实如此,服务器似乎无法识别它。有人可以提供一些建议或一些代码示例吗?
这是 login_action.cfm 中的代码,其中 login.cfm 将表单提交到: login form submit user credential to login_action.cfm。这是 login_action.cfm 中的代码:
<cfcookie name="JSESSIONID" value="0" expires="now">
<cfif IsDefined('cookie.JSESSIONID')>
<cfheader name="Set-Cookie" value="JSESSIONID=0;expires=#GetHttpTimeString(CreateODBCDateTime(now()))#;path=/;HTTPOnly;secure=true;">
</cfif>
<cfset structclear(session)>
<cfhttp url="loginverify.cfm" method="post" >
<cfhttpparam name="username" value="#form.username#" type="formfield" ><cfhttpparam name="password" value="#form.password#" type="formfield" >
</cfhttp>
<cfset cookieval = "#MID(cfhttp.responseheader['set-cookie'][1], 12, findnocase(";", cfhttp.responseheader['set-cookie'][1])-13)#">
<cfheader name="Set-Cookie" value="#cfhttp.responseheader['set-cookie'][1]#">
<cfset cookie.jsessionid = cookieval>
<cflocation url="myfirstpage.cfm" addtoken="no">
这是在 loginverify.cfm 中对用户进行身份验证的代码:
<!--- authenticate users --->
<!--- if user passed--->
<cfset session.gooduser = true>
<cfset session.userpermission = 1>
但似乎 loginverify.cfm 中定义的会话变量在 login_action.cfm 中无法识别
.
有什么建议吗?
非常感谢。