我非常好奇,如果在CEF夏普有可能性,以某种方式将浏览器的每个实例与其他实例隔离。CefSharp Wpf,多个实例的会话Cookie
我正在创建4个浏览器实例。登录实例 立即另外登录3个其他实例。
是否有可能以某种方式实现我们从Nuget获得的当前版本?
我非常好奇,如果在CEF夏普有可能性,以某种方式将浏览器的每个实例与其他实例隔离。CefSharp Wpf,多个实例的会话Cookie
我正在创建4个浏览器实例。登录实例 立即另外登录3个其他实例。
是否有可能以某种方式实现我们从Nuget获得的当前版本?
只要使用此代码,它为我工作。
public MainWindow()
{
CefSharp.CefSettings settings = new CefSharp.CefSettings();
settings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\CEF";
CefSharp.Cef.Initialize(settings);
InitializeComponent();
browser = new ChromiumWebBrowser("https://google.com/");
browser.BrowserSettings.ApplicationCache = CefSharp.CefState.Disabled;
}
截至revision 2040,CEF现在增加了一个请求上下文的基础上存储和权限(缓存,Cookie,本地存储,访问授权等)的完全隔离支持。这现在也在CEFSharp中。
要确保多个实例之间没有会话重叠,只需创建一个新的RequestContextSettings对象,将PersistSessionCookies和/或PersistUserPreferences设置为false,并在创建新的RequestContext时将其分配给您的浏览器 - 我不确定是否设置它们对于多个实例来说完全是必要的,也许其他人可以给出一些相关信息。
//usually ChromiumWebBrowser setup goes above this
RequestContextSettings requestContextSettings = new RequestContextSettings();
requestContextSettings.PersistSessionCookies = false;
requestContextSettings.PersistUserPreferences = false;
webBrowser.RequestContext = new RequestContext(requestContextSettings);
这一直让我头痛一阵子,这似乎终于解决了这个问题。
添加到此 - 如果我想本质上使用不同的配置文件“文件夹”为每个,所以它可以在会话之间持续 - 这将设置?谢谢 –
我想我找到了。 RequestContextSettings.CachePath =“” –
为什么downvote,这实际上工作? –