我在Windows窗体应用程序中嵌入了一个WebControl来访问服务器端页面,该页面在登录后可用。通常,当用户登录时,应用程序(以RoR编写)在客户端创建cookie。我正在使用CookieStore(Rails会话存储)在客户端存储会话数据。此外,我正在使用一个Web会话提供程序,使用特定的数据路径设置,以将会话存储在磁盘上。为了解决这个问题,我在几个Web会话提供程序之间共享该数据路径。
现在,我的问题是,如果用户通过单击注销链接注销,页面就会更新。用户无法再执行需要身份验证的操作。但是,我可以看到Cookies数据库没有立即更新(我从文件的修改日期以及保持不变的cookie值看到它)。我猜测一些内存存储首先被更新,然后被转储到磁盘中。我无法确定何时,但我注意到一段时间后(看似随机)Cookies数据库在磁盘上更新。但是,这仍然会产生问题,因为如果用户在注销后立即关闭应用程序,并且Cookies数据库尚未更新,那么它将引用旧cookie。预计当用户再次打开应用程序时,他将显示为已登录。我知道这可以通过在服务器端存储会话来缓解部分,但我更希望保持这种方式。
所以,我的问题是:有没有办法在磁盘上强制自动“Cookies”数据库更新?
答案 0 :(得分:1)
我相信我通过调用
将它刷新到磁盘上WebCore.Shutdown();
当我的应用关闭时。
我将对此进行更多测试。