我非常好奇,如果在CEF夏普有可能性,以某種方式將瀏覽器的每個實例與其他實例隔離。CefSharp Wpf,多個實例的會話Cookie
我正在創建4個瀏覽器實例。登錄實例 立即另外登錄3個其他實例。
是否有可能以某種方式實現我們從Nuget獲得的當前版本?
我非常好奇,如果在CEF夏普有可能性,以某種方式將瀏覽器的每個實例與其他實例隔離。CefSharp Wpf,多個實例的會話Cookie
我正在創建4個瀏覽器實例。登錄實例 立即另外登錄3個其他實例。
是否有可能以某種方式實現我們從Nuget獲得的當前版本?
只要使用此代碼,它爲我工作。
public MainWindow()
{
CefSharp.CefSettings settings = new CefSharp.CefSettings();
settings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\CEF";
CefSharp.Cef.Initialize(settings);
InitializeComponent();
browser = new ChromiumWebBrowser("https://google.com/");
browser.BrowserSettings.ApplicationCache = CefSharp.CefState.Disabled;
}
截至revision 2040,CEF現在增加了一個請求上下文的基礎上存儲和權限(緩存,Cookie,本地存儲,訪問授權等)的完全隔離支持。這現在也在CEFSharp中。
要確保多個實例之間沒有會話重疊,只需創建一個新的RequestContextSettings對象,將PersistSessionCookies和/或PersistUserPreferences設置爲false,並在創建新的RequestContext時將其分配給您的瀏覽器 - 我不確定是否設置它們對於多個實例來說完全是必要的,也許其他人可以給出一些相關信息。
//usually ChromiumWebBrowser setup goes above this
RequestContextSettings requestContextSettings = new RequestContextSettings();
requestContextSettings.PersistSessionCookies = false;
requestContextSettings.PersistUserPreferences = false;
webBrowser.RequestContext = new RequestContext(requestContextSettings);
這一直讓我頭痛一陣子,這似乎終於解決了這個問題。
添加到此 - 如果我想本質上使用不同的配置文件「文件夾」爲每個,所以它可以在會話之間持續 - 這將設置?謝謝 –
我想我找到了。 RequestContextSettings.CachePath =「」 –
爲什麼downvote,這實際上工作? –