@andoral

Почему восстановление куки (из Json) в CefSharp не работает так, как нужно?

Cохранение куки
void SaveCookies()
        {
            var cv = new CookieVisitor();
            Cef.GetGlobalCookieManager().VisitAllCookies(cv);
            var json = JsonConvert.SerializeObject(cv.Cookies);
            File.WriteAllText(settingsPath, json);
        }
Восстановление куки
void SetCookies()
        {
            var json = File.ReadAllText(settingsPath);
            var cookies = JsonConvert.DeserializeObject<List<Cookie>>(json);

            if (cookies == null || cookies.Count == 0)
                return;

            foreach(var cookie in cookies)
            {
                Cef.GetGlobalCookieManager().SetCookie(cookie.Domain, cookie);
            }
        }
CookieVisitor
class CookieVisitor : ICookieVisitor
    {

        public List<Cookie> Cookies { get; set; }

        public CookieVisitor()
        {
            Cookies = new List<Cookie>();
        }

        public void Dispose()
        {
            
        }

        public bool Visit(Cookie cookie, int count, int total, ref bool deleteCookie)
        {
            if (cookie == null)
                return false;

            Cookies.Add(cookie);
            return true;
        }
    }


При восстановлении куки браузер не восстанавливает сессию.
На строке
Cef.GetGlobalCookieManager().VisitAllCookies(cv);
почему то вход идет сразу на cv.Dispose().
Что я делаю не так?
  • Вопрос задан
  • 529 просмотров
Решения вопроса 1
Griboks
@Griboks Куратор тега C#
Надо задать CachePath для сохранения всех локальных данных вместо отдельного сохранения куки. Если CachePath не задан, закрытие браузер удаляет все локальные данные.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы