我正在银行设备上开发一个应用程序,该设备使用 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 列表为空,并且 IcookieVisitor
的 visit
函数从未被调用。似乎它保存在另一部分中,并且只是在 CEF 关闭时重置。
最佳答案
我找到了答案!这是因为禁用了缓存设置。
通过这样做,它实际上缓存了数据,但无法访问。例如,如果不关闭 CEF
,您就无法删除 cookie。因此,如果您启用缓存设置(将其保留为默认设置),您可以使用 Cef.GetGlobalCookieManager().DeleteCookies("", "")
删除它们。
关于wpf - Cefsharp 清除 wpf 中的缓存、cookie 和浏览器数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47739697/