wpf - Cefsharp 清除 wpf 中的缓存、cookie 和浏览器数据

标签 wpf cookies browser-cache cefsharp

我正在银行设备上开发一个应用程序,该设备使用 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 无法初始化两次,并且在处理后创建另一个浏览器实例不起作用。

我在ICookieVisitor中实现了visit函数来保存cookie,并使用了deleteCookies等方法或禁用缓存cefSetting命令,但没有任何效果,导致cookies 列表为空,并且 IcookieVisitorvisit 函数从未被调用。似乎它保存在另一部分中,并且只是在 CEF 关闭时重置。

最佳答案

我找到了答案!这是因为禁用了缓存设置。 通过这样做,它实际上缓存了数据,但无法访问。例如,如果不关闭 CEF,您就无法删除 cookie。因此,如果您启用缓存设置(将其保留为默认设置),您可以使用 Cef.GetGlobalCookieManager().DeleteCookies("", "") 删除它们。

关于wpf - Cefsharp 清除 wpf 中的缓存、cookie 和浏览器数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47739697/

相关文章:

wpf - 使用 MVVM 时在哪里放置事件?

c# - WPF 新手,如何在我的表单中创建这些彩色条?

Javascript websocket 客户端将 cookie 添加到 header

HTML 页面更改未显示在用户的 Chrome 浏览器中

google-chrome - 如何清除 Google Chrome iPad 应用程序上的应用程序缓存?

html - 将 "?v=1"附加到链接和脚本标记中的 CSS 和 JavaScript URL 有什么作用?

c# - 将数据从 View 模型绑定(bind)到 View

c# - MVVM模式是否适合此应用程序的要求?

node.js - Socket.io中如何获取存储的cookie信息?

c# - 如何为 4.7.2 之前的 .Net Framework 设置 cookie 属性 Samesite = None(对于 4.5.2)