web-dev-qa-db-ja.com

CEFシャープ、キャッシュ、Cookie、ブラウザデータをWPFでクリア

私はその一部としてcefsharpブラウザーを使用する銀行のデバイスでアプリを開発しています。このアプリは、次のユーザーが見ることができる前のユーザーからのデータを保存してはならない誰もが使用するためです。閉じた後、キャッシュされたブラウザデータをすべて消去したい。

public void InitBrowser()
    {
        settings = new CefSettings();
        settings.CachePath = AppDomain.CurrentDomain.BaseDirectory + "cache";
        settings.CefCommandLineArgs.Add("disable-application-cache", "1");
        settings.CefCommandLineArgs.Add("disable-session-storage", "1");
        if (!Cef.IsInitialized) Cef.Initialize(settings);
        webBrowser = new CefSharp.Wpf.ChromiumWebBrowser();
        MainGrid.Children.Add(webBrowser);
    }

WebPages_Exitという名前の関数が呼び出された後、すべてのキャッシュデータをクリアしたいのですが。ブラウザインスタンスを削除したり、CEFをシャットダウンしたりせずにすべてのキャッシュデータを削除するには、CEFを2回初期化できず、破棄した後、ブラウザの別のインスタンスを作成できません。

visitICookieVisitor関数を実装してCookieも保存し、deleteCookiesのような方法を使用したり、キャッシュcefSettingコマンドを無効にしたりしましたが、何も機能せず、Cookieリストが空でvisitIcookieVisitorの関数が呼び出されることはありません。別の場所に保存されているようで、CEFがシャットダウンするとリセットされます。

5
Shervin Rafiee

答えを見つけた!キャッシュ設定が無効になっているためです。キャッシュ設定を無効にすると、実際にはデータがキャッシュされますが、アクセスできなくなります。たとえば、CEFをシャットダウンしないとCookieを削除できません。したがって、キャッシュ設定を有効にする(デフォルト設定のままにする)場合は、Cef.GetGlobalCookieManager().DeleteCookies("", "")メソッドを使用してそれらを削除できます。

9
Shervin Rafiee