C# 每个浏览器单独缓存?

C# 每个浏览器单独缓存?,c#,visual-studio-2012,chromium-embedded,cefsharp,C#,Visual Studio 2012,Chromium Embedded,Cefsharp,目前,我正在设置缓存路径,如下所示: CefSettings settings = new CefSettings(); settings.CachePath = mycachePath; Cef.Initialize(settings); var browser = new ChromiumWebBrowser(myUrl); 以上工作 但是,我需要同时登录到一个有两个不同帐户的网站,但它使用相同的cookie容器。因此,如果我先使用一个帐户登录,然后使用另一个帐户登录,则会覆盖第一个帐

目前,我正在设置缓存路径,如下所示:

CefSettings settings = new CefSettings();
settings.CachePath = mycachePath;

Cef.Initialize(settings);

var browser = new ChromiumWebBrowser(myUrl);
以上工作

但是,我需要同时登录到一个有两个不同帐户的网站,但它使用相同的cookie容器。因此,如果我先使用一个帐户登录,然后使用另一个帐户登录,则会覆盖第一个帐户

是否可以为每个浏览器设置缓存路径


还是有更好的方法来处理这种情况?

看起来您正在使用?如果是这样的话,通过查看代码,您似乎希望创建一个空的浏览器:


这是旧的,但我只是偶然发现它,它需要一个更完整的答案。您可以打开任意多个浏览器实例,每个实例都有独立于其他实例的单独缓存和cookie。您只需为每个浏览器设置
CachePath
settings属性,确保其路径不同,然后创建浏览器

在一个示例场景中,您可以将其用于选项卡,其中Tab1有Browser1,Tab2有Browser2,等等,而每个浏览器实例都不知道其他浏览器实例。这是通过在创建浏览器之前为每个浏览器提供自己的缓存路径来实现的

在VB.NET中:

        CEFPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\My\Special\Cache\Path"

        If Not Directory.Exists(CEFPath) Then
            Try
                Directory.CreateDirectory(CEFPath)
            Catch ex As Exception
                MsgBox("Error creating cache directory" + vbCrLf + CEFPath,, "Error")
            End Try
        End If

        Dim settings As New CefSettings()
        settings.CachePath = CEFPath

        'Settings.Proxy = new ProxyOptions(ip: "myipaddress", port: "myport", username: "myusername", password: "mypassword")

        ' initialization before creating instance
        If CefSharp.Cef.IsInitialized = False Then
            CefSharp.Cef.Initialize(settings)
        End If

        browser = New ChromiumWebBrowser("")

        Dim requestContextSettings As New RequestContextSettings()
        requestContextSettings.CachePath = CEFPath
        'Optional:
        requestContextSettings.PersistSessionCookies = True

        'https://github.com/cefsharp/CefSharp/wiki/General-Usage
        browser.RequestContext = New RequestContext(requestContextSettings)

我使用的是NuGet packages v83.4.20

如果可能的话,您可以轻松地以私人方式打开第二个浏览器session@cFrozenDeath如何在专用会话中打开第二个浏览器?这取决于您是手动打开浏览器还是以编程方式打开浏览器。如果是第一个,右键点击Chrome并选择“新建隐姓埋名窗口”;如果是第二个,这取决于您使用的类以及它是否允许您not@cFrozenDeath我是在上面所示的代码中完成的。我认为这个答案不适用于当前版本(63.0),因为ChromiumWebBrowser(字符串url、BrowserSettings、RequestContext)不再有这个实例化方法
var browserSettings = new BrowserSettings();
var requestContextSettings = new RequestContextSettings { CachePath = "" };

using(var requestContext = new RequestContext(requestContextSettings))
using (var browser = new ChromiumWebBrowser(TestUrl, browserSettings, requestContext))
{
    ...
}
        CEFPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\My\Special\Cache\Path"

        If Not Directory.Exists(CEFPath) Then
            Try
                Directory.CreateDirectory(CEFPath)
            Catch ex As Exception
                MsgBox("Error creating cache directory" + vbCrLf + CEFPath,, "Error")
            End Try
        End If

        Dim settings As New CefSettings()
        settings.CachePath = CEFPath

        'Settings.Proxy = new ProxyOptions(ip: "myipaddress", port: "myport", username: "myusername", password: "mypassword")

        ' initialization before creating instance
        If CefSharp.Cef.IsInitialized = False Then
            CefSharp.Cef.Initialize(settings)
        End If

        browser = New ChromiumWebBrowser("")

        Dim requestContextSettings As New RequestContextSettings()
        requestContextSettings.CachePath = CEFPath
        'Optional:
        requestContextSettings.PersistSessionCookies = True

        'https://github.com/cefsharp/CefSharp/wiki/General-Usage
        browser.RequestContext = New RequestContext(requestContextSettings)