我在一个应用程序上工作,该应用程序位于不同国际呼叫中心的各种计算机上。该应用程序包含一个WebBrowser组件,该组件指向一个特定的内部站点的登录屏幕。用户登录,成功登录后(在Navigated事件期间),应用程序将读取一个特定的cookie值,然后稍后重新使用该值。
这已经运行了很长时间了,但是在过去的一个月中,我们看到一些实例,在这些实例中,成功登录后代码只是看不到cookie。 (该代码可以成功查看和记录登录之前发送的所有cookie,而不仅仅是登录后的cookie)
同一用户可以注销,并立即以相同的步骤重新登录并第二次获取该Cookie,因此它似乎与特定用户没有任何关系,并且似乎与特定呼叫无关中心。
生成cookie的服务器(集群)还包含日志,显示该日志DID始终生成该cookie,并认为每次都发送该cookie。
我们还运行了一些自动化测试,以从我自己的连接中注销并重新登录数千次(代理无法运行Fiddler之类的工具,并且与远程IT一起使用极其困难),并且发送了cookie并有100%的时间被代码看到。
所以现在可以归结为:
某些软件正在拦截和阻止cookie ...但是这很奇怪,因为遇到其他cookie很好,而且受影响的呼叫中心的网络基础设施都不同。
或者以某种方式,WebBrowser组件的Navigated事件没有看到cookie ...这很奇怪,因为它一直工作到最近。
我们真的很不幸尝试重现该问题(大约在生产中发生5%的时间,所以应该有成千上万的测试能够解决这个问题)。
但是,为了覆盖我的基础,我想看看是否有人明确地知道是否存在导航事件可能看不到通过HTTP标头设置的cookie(“ Set-Cookie:foo = bar”)的可能性,并且可能需要进一步处理(例如DocumentCompleted)?我不确定为什么原始开发人员选择了Navigated而不是DocumentCompleted,但是如果事件在读取标头设置的cookie时没有任何区别,那么我不想提出建议,没关系。
这里涉及很多不同的方面,当然没有人认为这是他们的错,所以我需要确保我的信息在上桌时被铁定。