4

如果您希望 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 并让它选择相关的域?

谢谢。

4

4 回答 4

2

我设法找到了 jrun-web.xml 的 DTD(链接@顶部指向已失效的 Macromedia URL)。

这指定 XML 中只能有一个<cookie-domain>节点。我还测试了一个域名列表,例如:

<cookie-domain>.domainA.com,.domainB.com</cookie-domain>

这也行不通。

不是一个绝对的答案,但我怀疑这可能是不可能的(!),而且通过 jrun-web.xml 肯定是不可能的(我猜它至少回答了你的一个问题)。

于 2013-07-03T09:56:26.263 回答
0
<cfapplication
   setdomaincookies=yes
   .....>

这会将您的 cfid 和 cftoken cookie 设置为域 cookie (*.bar.com),而不是特定于主机的值 (foo.bar.com)。

CFApplication(参见 setDomainCookies 部分)

于 2012-02-15T17:17:50.713 回答
0

我认为您可以使用<CFHEADER>设置域 cookie 而不是<CFCOOKIE>?

于 2012-02-15T16:36:51.417 回答
-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">
于 2012-02-15T13:59:23.263 回答