我试图使用Citrix Netscaler来检查是否存在特定的cookie。这看起来应该是直截了当的,但到目前为止我还没有取得成功。
具体来说,我希望在Responder策略中检查cookie的存在,如果没有找到cookie,则将用户重定向到特定的页面。然后,该页面上的JavaScript脚本将创建cookie,以便在下次访问时不会触发重定向。这样做的目的是将用户重定向到带有消息的页面,但只在cookie到期时重定向一次。
我对设置Responder的政策和行动很满意,但没有能够让cookie检查按需要工作。在Firefox developer视图中,我可以看到cookie是按预期创建的。
我正在使用版本10.5的Netscaler
我进行了广泛的搜索,但没有找到一个有效的答案,或者至少是我理解并能够应用的答案。我还搜索了Citrix Netscaler社区,并阅读了NS文档。
到目前为止,我能想到的最接近的方法是
!HTTP.REQ.COOKIE.CONTAINS("myCookie")我原以为会看到饼干的存在,而不是因为!而触发了政策。我尝试使用.NOT和语句的结尾,而不是!,但没有成功。
我测试了这些cookie是通过
HTTP.REQ.COOKIE.LENGTH < or > some arbitray value 我可以看到,它是正确的评估和逻辑工作的预期。根据文档,HTTP.REQ.COOKIE返回一个包含HTTP头部内容的名称/值列表,因此我希望如果找到Cookie名称,.CONTAINS将计算为true。情况似乎并非如此。
发布于 2020-07-02 13:09:54
我知道现在答复太晚了。但这可能会帮助那些有类似疑问的人。
HTTP.REQ.COOKIE.NAMES.CONTAINS_ELEMENT("myCookie").NOT是你要找的表情。如果cookie不存在,则返回true。
HTTP.REQ.COOKIE.NAMES是HTTP中存在的cookie名称列表。如果存在mycookie,HTTP.REQ.COOKIE.NAMES.CONTAINS_ELEMENT("myCookie")将返回true。精确字符串匹配(EQ)是预先形成的,而不是模式匹配( instead )。
发布于 2016-12-28 21:41:48
我认为你能得到的最接近的就是检查那个cookie的值的长度。试着使用
HTTP.REQ.HEADER(\"myCookie\").LENGTH >1https://stackoverflow.com/questions/38985679
复制相似问题