如何使用Cefsharp管理多个用户个人资料?

时间:2019-04-24 11:52:02

标签: c# cefsharp user-profile

什么是最好的管理多用户个人资料?

我发现创建一个新的RequestContextSettings并将其保存到特定文件夹中是一种可能的方法: CefSharp Wpf , Session Cookie for multiple instances 但是,这意味着要在CEFSettings初始化之前进行此操作。

因此,也许我必须在更改用户个人资料之前关闭CEF。 但是,如何在一次应用程序会话中以干净的方式多次对其进行管理? 我也读过Cef.Shutdown方法仅启动一次 https://cefsharp.github.io/api/51.0.0/html/M_CefSharp_Cef_Shutdown.htm

所以,我的问题是:在当前会话中,

的方式是什么?
RequestContextSettings lRCS = new RequestContextSettings();
requestContextSettings.CachePath = "another user";
myBrowser.RequestContext = new RequestContext(lRCS);

没有收到错误消息,说“创建基础CEF浏览器之前必须设置RequestContext。”

非常感谢您的帮助。

@amaitland 非常感谢您的帮助。这段代码摘自Request Context (Browser Isolation)

var requestContextSettings = new RequestContextSettings { CachePath = cachePath2}; browser= new ChromiumWebBrowser("mysite.com"); browser.RequestContext = new RequestContext(requestContextSettings, new CustomRequestContextHandler()); 并引发2个错误:
代码Erreur CS1503参数1:无法将'CefSharp.RequestContextSettings'转换为'CefSharp.IRequestContext'

找不到代码Erreur CS0246类型'CustomRequestContextHandler'。 (是否缺少使用指令或汇编指令?)。

但是,如果我修改了最后一行,只需调用一个参数

browser.RequestContext = new RequestContext(requestContextSettings);

我可以运行某些程序,然后在cachePath2中获取缓存数据。但是,如果我这样做,屏幕将保持白色

browser.CloseDevTools(); browser.Dispose(); var requestContextSettings = new RequestContextSettings { CachePath = cachePath2}; browser= new ChromiumWebBrowser("mysite.com"); browser.RequestContext = new RequestContext(requestContextSettings);

或者,如果不添加CloseDEvTools + Dispose,浏览器将停留在与user1共享的上一页中。

所以我想CustomRequestContextHandler是更新浏览器而不冻结它的重要参数。 但是我找不到如何获得完整的程序集引用。 我使用VS2017,Winforms和Nuget软件包71.0.2。 cef.redist.x86“ version =” 3.3578.1870“ targetFramework =” net461“ 再次发送电子邮件以寻求帮助。

0 个答案:

没有答案