如果您希望ColdFusion将会话Cookie创建为域级Cookie,例如.bar.com而不是foo.bar.com然后你可以在jrun-web.xml中配置它: -
<session-config>
<cookie-config>
<active>true</active>
<cookie-domain>.bar.com</cookie-domain>
</cookie-config>
<persistence-config>
<active>false</active>
</persistence-config>
</session-config>
但是,这是一个实例范围的设置,因此如果您要在该实例上运行两个应用程序,或者实际上一个应用程序运行具有或更多不同的顶级域名,那么其中一个应用程序将具有无效的会话。
有没有办法将多个域添加到jrun-web.xml并让它选择相关的域?
感谢。
答案 0 :(得分:2)
我设法找到the DTD for jrun-web.xml(链接@顶部指向已停用的Macromedia网址)。
这指定XML中只能有一个<cookie-domain>
节点。我还测试了一个域名列表,例如:
<cookie-domain>.domainA.com,.domainB.com</cookie-domain>
这也不起作用。
不是绝对的答案,但我怀疑它可能不可能(!),并且肯定不可能通过jrun-web.xml(我想至少回答你的一个问题)。
答案 1 :(得分:0)
我认为您可以使用<CFHEADER>
来设置域Cookie而不是<CFCOOKIE>
?
答案 2 :(得分:0)
<cfapplication
setdomaincookies=yes
.....>
这会将您的cfid和cftoken Cookie设置为域Cookie(* .bar.com),而不是特定于主机的值(foo.bar.com)。
CFApplication(请参阅有关setDomainCookies的部分)
答案 3 :(得分:-1)
我认为如果使用cgi.server_name变量命名应用程序,并且每个站点使用相同的application.cfc或application.cfm文件,那么会话和cookie变量将适用于每个站点。例如:
<cfapplication name="#cgi.server_name#" sessionmanagement="YES" clientmanagement="YES" sessiontimeout="#CreateTimeSpan(1,0,0,0)#" applicationtimeout="#CreateTimeSpan(1,0,0,0)#" clientstorage="COOKIE" setclientcookies="YES">