在嵌入 IE WebBrowser 控件的应用程序中,什么决定了会话 cookie 的生命周期?似乎在大多数情况下,会话 cookie 会一直存在,直到进程终止,但有时当带有 WebBrowser 控件的窗口之一关闭而其他此类窗口保持打开时,cookie 会被终止。注册表中有相关设置吗?
问问题
727 次
2 回答
1
网络服务器可以。它给 cookie 一个过期日期。
可以选择省略该日期。然后它变成一个会话cookie,在浏览器关闭时自动删除。在嵌入式浏览器的情况下,这意味着,当您关闭窗口时。如果您处置控件,可能会更早。
于 2013-06-15T00:38:50.057 回答
0
您是否总是至少有一个 Web 浏览器控件处于活动状态?如果是这样,您描述的行为是一个错误。IE 版本是多少,是否安装了所有更新?
会话 cookie 旨在在流程的整个生命周期中存在,但其维护方式取决于全局计数器,该计数器随着 WebOC 实例的打开而增加,并随着这些 WebOC 的销毁而减少。您可以使用 JavaScript 中的 ClearAuthenticationCache ExecCommand(或通过本机代码中的等效 InternetSetOption)将计数器强制为零,但无法人为地“增加”计数器。
回到 IE8 时间框架,计数器中存在已知的错误,但据我所知,所有这些都已修复。如果您确实需要保留会话 cookie,您可以使用本机代码定期检查 cookie 的存在(使用 InternetGetCookie),如果未找到,则通过调用 InternetSetCookie 重新创建 cookie。
于 2013-06-18T02:13:37.550 回答