Как управлять профилем пользователя muti с помощью Cefsharp? - PullRequest
0 голосов
/ 24 апреля 2019

Как лучше всего управлять многопользовательскими профилями ??

Я обнаружил, что создать новый RequestContextSettings и сохранить в определенную папку было возможным способом: CefSharp Wpf, Session Cookie длянесколько экземпляров Тем не менее, это подразумевает выполнение этого до инициализации 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);

без получениясообщение об ошибке, в котором говорится, что «RequestContext должен быть установлен до того, как будет создан базовый браузер CEF».

Большое спасибо за вашу помощь.

@ amaitland Ваша помощь действительно ценится.Этот код извлечен из контекста запроса (изоляция браузера)

var requestContextSettings = new RequestContextSettings { CachePath = cachePath2}; browser= new ChromiumWebBrowser("mysite.com"); browser.RequestContext = new RequestContext(requestContextSettings, new CustomRequestContextHandler()); и вызывает 2 ошибки:
Code 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);

или браузер останется с предыдущей страницей, которую я имел с user1, если я не добавлю CloseDEvTools + Dispose.

Поэтому я предполагаю, что CustomRequestContextHandler является важным параметром для обновления браузера, а не для его замораживания.Но я не вижу, как у меня могут быть полные ссылки на сборку.Я использую VS2017, Winforms и Nuget пакет 71.0.2.cef.redist.x86 "version =" 3.3578.1870 "targetFramework =" net461 "Передайте снова за вашу помощь.

...