2016-08-16 13 views
0

Я пытаюсь использовать Citrix Netscaler для проверки наличия определенного файла cookie. Похоже, это должно быть просто, но пока у меня не было успеха.netscaler проверить, существует ли файл cookie

В частности, я хочу проверить существование печенья в политике ответчика и, если файл cookie не найден, перенаправьте пользователя на определенную страницу. Сценарий JavaScript на этой странице затем создаст файл cookie, чтобы перенаправление не запускалось при следующем посещении. Идея состоит в том, чтобы перенаправить пользователя на страницу с сообщением, но только один раз в течение срока действия файла cookie.

Мне комфортно с настройкой Политики и действия ответчика, но havent удалось получить проверку cookie для работы по желанию. В представлении разработчика Firefox я вижу, что файл cookie создается, как ожидалось.

Я работаю с NetScaler MPX с версии 10.5


Я искал обширно, но не везло найти ответ, который работает, или, по крайней мере, я понимаю, и может применяться. Я также искал в сообществе Citrix Netscaler и прочитал документацию NS.

Ближайший подход, который я смог придумать до сих пор что-то вроде

!HTTP.REQ.COOKIE.CONTAINS("myCookie") 

, который я ожидал бы увидеть наличие куки и не сгореть политики в связи с !. Я пробовал с .NOT и в конце инструкции вместо !, но не повезло.

Я проверил, что куки считываются с помощью

HTTP.REQ.COOKIE.LENGTH <or> some arbitray value 

и я могу видеть, что он правильно оценивать и логика работает, как ожидалось. В соответствии с документацией HTTP.REQ.COOKIE возвращает список Name/Value с содержимым заголовка HTTP Cookie, поэтому я ожидал, что .CONTAINS оценит true, если имя файла cookie найдено. Кажется, это не так.

+0

Трудно помочь без понятия, где вы искали или что вы пробовали. Предоставление предложений без этой информации влечет за собой написание учебника, не относящегося к теме. Пожалуйста, прочитайте «[ask]» и «[mcve]» и предоставьте нам дополнительную информацию. –

+0

Я идентифицировал проблему и хотел ее обновить здесь, если у кого-то другая проблема. Правильный синтаксис для того, что я хотел сделать, оказывается HTTP.REQ.COOKIE.NAMES.CONTAINS («MyCookie»). Я пробовал это безрезультатно. Оказывается, netscaler не читает все файлы cookie, а строка COOKIE.NAMES содержит только первые пять или шесть файлов cookie. Я отследил это до брандмауэра веб-приложений. При отключенном WAF все работает так, как ожидалось. Я буду изучать настройки и/или открывать билет с Citrix по этой проблеме. Надеюсь, это полезно. –

+1

Пожалуйста, отформатируйте вопрос для удобочитаемости, поскольку в настоящее время его очень трудно читать, что снижает его качество и ценность. Если вы нашли информацию, которая решает проблему, тогда создайте ответ и выберите его, когда SO тайм-аут будет длиться. Вам не нужно помечать разделы в тексте («Дополнительная информация»). Вы можете использовать '---' для горизонтальной полосы, но лучше всего включать информацию, в которой вы были бы изначально. –

ответ

0

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

HTTP.REQ.HEADER(\"myCookie\").LENGTH >1