2013-09-27 22 views
1

我在Windows窗體應用程序中嵌入了一個WebControl來訪問服務器端頁面,該頁面在登錄後可用。通常,當用戶登錄時,應用程序(用RoR編寫)在客戶端創建一個cookie。我正在使用CookieStore(Rails會話存儲)在客戶端存儲會話數據。此外,我正在使用一個Web會話提供程序(使用特定數據路徑設置)將會話存儲在磁盤上。爲了增加這個問題,我在幾個Web會話提供者之間共享這個數據路徑。如何立即更新磁盤Cookie數據庫?

現在,我的問題是,如果用戶通過單擊註銷鏈接註銷,頁面更新正常。用戶不能再執行需要認證的操作。但是,正如我所看到的,Cookies數據庫不會立即得到更新(我從文件的修改日期以及cookie值保持不變)。我猜測一些內存中的存儲是先更新的,然後轉儲到磁盤中。我無法確定何時,但我注意到一段時間後(看似隨機),Cookies數據庫在磁盤上更新。但是,這仍然會產生問題,因爲如果用戶在註銷後立即關閉應用程序,並且Cookies數據庫尚未更新,那麼它將引用舊的Cookie。預計,當用戶再次打開應用程序時,他將顯示爲登錄。我知道這可能是部分緩存通過在服務器端存儲會話,但我寧願保持這種方式。

所以,我的問題是:有沒有辦法強制磁盤上的自動「餅乾」數據庫更新?

+0

我遇到完全相同的問題。我已經檢查過,以確保Dispose被稱爲每Awesomium的指示,它是http://wiki.awesomium.net/general-use/using-web-sessions.html你有沒有找到一個解決方法呢? – GreenKiwi

回答

1

我相信,我得到它通過調用

WebCore.Shutdown(); 

當我的應用程序被關閉刷新值到磁盤。

我會對此做一些更多的測試。

相關問題