Вопрос
Возможно ли, чтобы одно приложение WPF работало с CefSharp с несколькими вкладками браузера с каждой отдельной вкладкой LocalStorage ?
РЕДАКТИРОВАТЬ: Ответ Это вполне возможно.
Проблема
Я обнаружил необходимость иметь несколько экземпляров браузера в отдельное приложение WPF, каждое действие которого является отдельным изолированным браузером. Это означает, что они не могут поделиться ничем . Подумайте о наличии браузера, в котором у каждой вкладки может быть свой пользователь, например, как Chrome управляет пользователями, но в каждой вкладке, а не в каждом отдельном браузере.
Отсюда довольно быстро наткнулся на запрос «Контекст контекста»: https://github.com/cefsharp/CefSharp/wiki/General-Usage#request -context-browser-изоляция
Однако это не изолирует LocalStorage, что становится проблемой, поскольку некоторые веб-сайты хранят свой токен сеанса в LocalStorage. Теперь у меня есть:
BrowserSettings = new RequestContextSettings
{
CachePath = cacheFileName,
PersistSessionCookies = false,
PersistUserPreferences = false
};
, где cacheFileName
уникален для каждой вкладки.
Я также пытался отключить LocalStorage с помощью аргумента командной строки disable-local-storage
, но затем веб-сайт, который использовать LocalStorage для данных сеанса вообще не запускаются.
У меня есть сумасшедшее решение, когда я создаю другое приложение WPF, которое является просто браузером, и внедряю это приложение в свой собственный в каждой вкладке, но это приносит свои проблемы и головные боли, и я не совсем уверен, что это сработает. Любая помощь будет оценена!