2013-02-20 5 views
1

Мы используем ColdFusion 9.0.1 и начинаем замечать, что с IE мы получим два набора файлов cookie сеанса (CFID, CFTOKEN, JSESSIONID), если мы нажмем субдомен, за которым следует корневой домен (например, пример www.example.com .com)Как работает сеанс карты ColdFusion?

ColdFusion, похоже, успешно справляется с этим фактом и правильно соответствует сеансу с соответствующими переменными сеанса.

Я ищу, чтобы понять, как ColdFusion/JRUN обрабатывает отображение переменных сеанса. Я знаю, что это имя приложения является частью уравнения, но что происходит, когда имеется более одного файла cookie JSESSIONID. Как он решает, какой из них прав?

ответ

0

Cookies являются специфическими для домена по умолчанию, поэтому файлы cookie, созданные на www.foo.com, не переносятся на foo.com. В вашем Application.cfc вам необходимо установить значение setdomaincookies в true, например, так:

<cfapplication name="myapp" setdomaincookies="true" /> 

Или, если вы пишете его в cfscript:

this.setdomaincookies = true; 

Это установит ваши куки сессии, чтобы быть часть * .foo.com, и они будут нести от одного поддомена к другому без проблем.

+0

Мы действительно хотели бы, чтобы домены были отдельными. К сожалению, похоже, что IE этого не допустит. Итак, я пытаюсь понять, как подсчитываются сеансы, чтобы убедиться, что конфликтов не будет. –

+0

В этом случае он будет использовать cookie для текущего домена, чтобы забрать правильный идентификатор сеанса. –

+0

Можно было бы подумать. Тем не менее, IE будет отправлять оба файла cookie с каждым запросом (JSESSIONID не имеет домена), поэтому ColdFusion каким-то образом может использовать правильный. –