C# CefSharp speichert Cookies nicht?
Moin, ich verwende einen Chromium Browser in meiner Forms App mit CefSharp wenn ich mich irgendwo anmelde muss ich mich wenn ich das Programm neustarte neu anmelden, deswegen möchte ich Cookies speichern
Ich hab jetzt das probiert (Wie es überall im Internet steht):
var settings = new CefSettings();
settings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\CEF";
settings.PersistSessionCookies = true;
CefSharp.Cef.Initialize(settings);
Aber es funktioniert nicht. Ist der Code fehlerhaft, wenn ja wie würde es richtig gehen?
1 Antwort
Ich habe es gerade einmal mit der aktuellen Version 93.1.111 getestet. Ich habe dafür eine beliebige Seite mit Cookie Popup benutzt und für die Cache-Daten einen neuen Ordner angelegt.
var applicationPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var cachePath = Path.Combine(applicationPath, "cache");
if (!Directory.Exists(cachePath))
{
Directory.CreateDirectory(cachePath);
}
CefSharp.Cef.Initialize(new CefSettings
{
CachePath = cachePath,
PersistSessionCookies = true
});
// create browser control and add to form ...
Dein Problem konnte ich damit reproduzieren, obwohl im cache-Ordner offensichtlich die Cookie-Daten abgelegt wurden.
Ich habe dem Form daraufhin noch einen Event Handler zugeordnet, der anspringt, sobald es sich schließt. In diesem habe ich die Shutdown-Methode für CefSharp aufgerufen, was du vermutlich nicht tust. Dieser Aufruf bewirkt das Speichern der Cache-Daten vor Beendigung des Browserprozesses.
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
CefSharp.Cef.Shutdown();
}
Bei einem Neustart der Anwendung erscheint der Cookie Popup daraufhin nicht mehr.