2016-08-16 4 views
0

Ich versuche Citrix Netscaler zu verwenden, um nach dem Vorhandensein eines bestimmten Cookies zu suchen. Es scheint, als ob es einfach sein sollte, aber ich hatte bisher keinen Erfolg.Netscaler überprüfen, ob ein Cookie existiert

Insbesondere möchte ich in einer Responder-Richtlinie nach dem Vorhandensein des Cookies suchen und, wenn der Cookie nicht gefunden wird, den Benutzer auf eine bestimmte Seite umleiten. Ein JavaScript-Skript auf dieser Seite erstellt dann den Cookie, sodass die Weiterleitung beim nächsten Besuch nicht ausgelöst wird. Die Idee ist, den Benutzer auf eine Seite mit einer Nachricht umzuleiten, aber nur einmal innerhalb des Ablaufs des Cookies.

Ich bin mit der Einrichtung der Responder-Policies und -Aktionen vertraut, konnte aber die Cookie-Prüfung nicht wie gewünscht ausführen. Ich sehe in der Entwickleransicht von Firefox, dass der Cookie wie erwartet erstellt wird.

Ich bin mit einem Netscaler MPX mit Version 10,5


ich ausgiebig gesucht arbeiten, aber hatte kein Glück, eine Antwort zu finden, kann funktioniert, oder zumindest, dass ich zu verstehen und anzuwenden. Ich habe auch in der Citrix Netscaler-Community gesucht und die NS-Dokumentation durchgelesen.

Der nächste Ansatz ich in der Lage war, mit so weit zu kommen etwas wie

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

, die ich die Anwesenheit des Cookies zu erwarten wäre, hätte sehen und nicht die Politik Feuer aufgrund der !. Ich habe versucht mit .NOT und das Ende der Aussage anstelle der ! aber hatte kein Glück.

ich getestet, dass die Cookies durch

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

gelesen werden, und ich kann sehen, dass es richtig und die Logik funktioniert wie erwartet ausgewertet wird. Laut der Dokumentation HTTP.REQ.COOKIE gibt eine Name/Wert-Liste mit dem Inhalt des HTTP-Cookie-Header zurück, so erwartete ich .CONTAINS, um zu bewerten, wenn der Cookie-Name gefunden wurde. Dies scheint nicht der Fall zu sein.

+0

Es ist schwierig zu helfen, ohne eine Ahnung, wo Sie gesucht haben oder was Sie versucht haben. Um Vorschläge ohne diese Informationen zu machen, müssen Sie ein nicht-themenorientiertes Tutorial schreiben. Bitte lesen Sie "[ask]" und "[mcve]" und geben Sie uns weitere Informationen. –

+0

Ich habe das Problem identifiziert und wollte es hier aktualisieren, falls jemand das gleiche Problem hat. Die richtige Syntax für das, was ich tun wollte, entpuppt sich als HTTP.REQ.COOKIE.NAMES.CONTAINS ("MyCookie"). NOT. Ich hatte das vergebens versucht. Es stellt sich heraus, dass Netscaler nicht alle Cookies liest und der COOKIE.NAMES-String nur die ersten fünf oder sechs Cookies enthält. Ich habe dies bis zur Web Application Firewall verfolgt. Mit der WAF funktioniert alles wie erwartet. Ich werde in diesem Zusammenhang die Einstellungen prüfen und/oder ein Ticket mit Citrix öffnen. Ich hoffe, das ist hilfreich. –

+1

Bitte formatieren Sie die Frage zur besseren Lesbarkeit, da sie derzeit sehr schwer zu lesen ist, was ihre Qualität und ihren Wert verringert. Wenn Sie Informationen gefunden haben, die das Problem lösen, erstellen Sie eine Antwort und wählen Sie sie aus, wenn die Wartezeit nicht überschritten wird. Sie müssen Abschnitte in Ihrem Text nicht markieren ("Zusätzliche Informationen"). Sie können '---' für einen horizontalen Balken verwenden, aber es ist am besten, die Informationen einzubeziehen, wo Sie ursprünglich hätten. –

Antwort

0

Ich denke, die nächste, die Sie erhalten können, ist auf die Länge des Werts dieses Cookies zu überprüfen. Versuchen Sie mit

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