如何关闭 CefSharp Session winforms vb.net

How to close CefSharp Session winforms vb.net

提问人:Code_Geass 提问时间:7/28/2021 最后编辑:Code_Geass 更新时间:8/2/2021 访问量:601

问:

当表单关闭并重新打开时,我一直在努力关闭当前会话

https://www.facebook.com

我期望发生的事情:

  • 打开表单
  • 登录:https://www.facebook.com
  • 关闭表单
  • 重新打开表单
  • 会话已关闭,我可以使用不同的凭据登录

实际发生的情况:

Imports CefSharp.WinForms
Imports CefSharp

Public Class MasOrdenAPP


    Private Sub MasOrdenAPP_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.FormBorderStyle = 0
    End Sub

    Private WithEvents browser As ChromiumWebBrowser

    Public Sub New()


        CefSharp.Cef.Shutdown()

        InitializeComponent()

        Dim settings As New CefSettings()

        CefSharp.Cef.Initialize(settings)

        CefSharp.Cef.GetGlobalCookieManager.DeleteCookies("", "")

        browser = New ChromiumWebBrowser("https://www.facebook.com/") With {.Dock = DockStyle.Fill}
        browser.BrowserSettings.ApplicationCache = CefState.Disabled
      
        Panel1.Controls.Add(browser)

    End Sub

    Private Sub bCerrar_Click(sender As Object, e As EventArgs) Handles bCerrar.Click
        CefSharp.Cef.GetGlobalCookieManager.DeleteCookies("", "")
      
        Me.Close()
        Home.Activate()
    End Sub

    Private Sub MasOrdenAPP_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
        'CefSharp.Cef.GetGlobalCookieManager.DeleteCookies("", "")
    End Sub

End Class

我尝试过,但仅适用于 Facebook 和 reddit,不适用于我实际需要它才能运行的网站。CefSharp.Cef.GetGlobalCookieManager.DeleteCookies("", "")

我尝试使用,但它禁用了浏览器,当我尝试重新打开表单时,它不再起作用browser.dispose()

我试过了:

settings.CachePath = ""
settings.CefCommandLineArgs.Add ("disable-application-cache", "1")
settings.CefCommandLineArgs.Add("disable-session-storage", "1")

它似乎什么也没做。

如果在 CEF 中无法做到这一点,有没有办法在每次关闭表单时重置或处置 CEF 浏览器,以便每次打开表单时都像第一次一样要求您提供凭据?

vb.net Winforms 可视化工作室 2012 cefsharp

评论

0赞 amaitland 7/28/2021
您可以使用 RequestContext 来隔离浏览器实例。github.com/cefsharp/CefSharp/wiki/......
0赞 Code_Geass 7/28/2021
嗨,@amaitland感谢您的回复,我真的是 cefsharp 的新手,我已经使用它几天了,您能详细说明一下使用 RequestContext 的想法吗?,我阅读了您发布的链接,我试图了解它是如何工作的或它的作用,但我有点迷茫。
0赞 amaitland 7/28/2021
您可以使用新的 RequestContext 创建新的 ChromiumWebBrowser 实例,它将具有不同的缓存。
1赞 amaitland 8/3/2021
从其父控件中删除 ChromiumWebBrowser 实例,然后使用新的 RequestContext 创建新的 ChromiumWebBrowser 实例,你将获得一个新的内存缓存。

答: 暂无答案