Как изолировать LocalStorage в браузере CefSharp - PullRequest
0 голосов
/ 26 февраля 2020

Вопрос

Возможно ли, чтобы одно приложение 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, которое является просто браузером, и внедряю это приложение в свой собственный в каждой вкладке, но это приносит свои проблемы и головные боли, и я не совсем уверен, что это сработает. Любая помощь будет оценена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...