1

ログイン後に使用できるサーバー側のページにアクセスするために、Windows フォーム アプリケーションに WebControl を埋め込みました。通常、ユーザーがログインすると、アプリケーション (RoR で記述) がクライアント側で Cookie を作成します。クライアント側でセッション データを保存するために CookieStore (Rails セッション ストア) を使用しています。さらに、特定のデータ パスで設定された Web セッション プロバイダーを使用して、セッションをディスクに保存しています。さらに、そのデータ パスを複数の Web セッション プロバイダー間で共有しています。

ここで、私の問題は、ユーザーがログアウト リンクをクリックしてログアウトすると、ページが正常に更新されることです。ユーザーは、認証が必要な操作を実行できなくなります。ただし、Cookies データベースがすぐに更新されないことがわかります (ファイルの変更日と同じままの Cookie 値から確認できます)。最初にメモリ内ストレージが更新され、それがディスクにダンプされると推測しています。いつになるかははっきりとはわかりませんが、しばらくすると (一見ランダムに) Cookies データベースがディスク上で更新されることに気付きました。ただし、ユーザーがログアウト直後にアプリケーションを閉じ、Cookie データベースがまだ更新されていない場合、古い Cookie への参照が存在するため、これでも問題が生じます。予想通り、ユーザーがアプリケーションを再度開くと、ログイン済みとして表示されますこれはサーバー側にセッションを保存することで部分的に軽減できることはわかっていますが、私はこの方法を維持したいと考えています。

それで、私の質問は次のとおりです。ディスク上の自動「Cookie」データベース更新を強制する方法はありますか?

4

1 に答える 1

1

呼び出して値をディスクにフラッシュすることができたと思います

WebCore.Shutdown();

私のアプリが閉じているとき。

これについてさらにテストを行う予定です。

于 2013-12-23T21:32:48.990 に答える