我的登录页面位于一个域中,而应用程序位于另一个域上。
当我使用来自单独域的登录时,会话变量不会存储在第二个域中,即使这是创建它们的域。
要明确,我不是在域之间共享会话
登录域在应用程序域上运行脚本,应用程序在该域中创建会话变量。 在应用程序域中调用重定向时,不会传输此变量。
如果我从同一个域调用脚本,会话将按预期存储。有趣的是,直到今天这个工作正常。有些cf设置也许改变了。
我注意到CFID和CFTOKEN正在通过,会话是否可以使用推荐网站的CFID和CFTOKEN编写?
如果是这样,我怎么能阻止它?
答案 0 :(得分:3)
您可以通过在Application.cfc中设置this.setclientcookies = false
来覆盖默认会话Cookie行为,并在Application.cfc的onSessionStart()
e.g。
<cfcomponent>
<cfset this.sessionmanagement = true>
<cfset this.setclientcookies = false>
<cffunction name="onSessionStart">
<cfcookie name="CFID" value="#session.cfid#" domain=".subdomain.domain.com">
<cfcookie name="CFTOKEN" value="#session.cftoken#" domain=".subdomain.domain.com">
</cffunction>
<cfcomponent>
当你在这里时,将httpOnly
属性设置为true也是个好主意。