Autor
|
Tema: CefSharp Cookies (Leído 6,875 veces)
|
rigorvzla
Desconectado
Mensajes: 221
|
Hola amigos, espero todos esten bien , tengo un problema y no se como guardar y recuperar las cookies del explorador, estoy usando CefSharp, mi objetivo es iniciar sesion en web.whatsapp.com y que al iniciar el programa nuevaemnte ya entre sin tener que vincular el dispositivo nuevamente, espero puedan ayudarme , gracias de antemano.
|
|
|
En línea
|
|
|
|
TickTack
Desconectado
Mensajes: 434
CipherX
|
¡Hola! Aquí tienes un ejemplo básico de cómo hacerlo: private ChromiumWebBrowser chromeBrowser;
private void ChromeBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e) { if (e.Frame.IsMain) { // Guardar cookies al cargar la página var cookieManager = chromeBrowser.GetCookieManager(); cookieManager.VisitAllCookiesAsync(cookies => { foreach (var cookie in cookies) { // Guardar cookie en tu sistema de almacenamiento (p. ej. base de datos) Console.WriteLine($"Cookie Name: {cookie.Name}, Value: {cookie.Value}"); } }); } }
En el método se obtienen todas las cookies después de que se carga la página y puedes guardarlas donde desees. Luego, al iniciar tu programa nuevamente, puedes cargar estas cookies guardadas y establecerlas en el CookieManager antes de cargar la página de WhatsApp. Esto permitirá que tu sesión se mantenga activa sin tener que volver a vincular el dispositivo.
|
|
|
En línea
|
|
|
|
rigorvzla
Desconectado
Mensajes: 221
|
muchas gracias por tu respuesta, lo estare probando , el metodo de carga para asignar las cookies como seria?
|
|
|
En línea
|
|
|
|
TickTack
Desconectado
Mensajes: 434
CipherX
|
Para cargar las cookies guardadas y asignarlas antes de cargar la página, puedes hacer lo siguiente: private void InitializeChromium() { CefSettings settings = new CefSettings(); Cef.Initialize(settings);
chromeBrowser = new ChromiumWebBrowser("https://web.whatsapp.com/"); chromeBrowser.Dock = DockStyle.Fill;
// Cargar cookies guardadas antes de cargar la página LoadSavedCookies();
chromeBrowser.FrameLoadEnd += ChromeBrowser_FrameLoadEnd;
this.Controls.Add(chromeBrowser); }
private void LoadSavedCookies() { var cookieManager = chromeBrowser.GetCookieManager();
// Aquí recuperarías las cookies guardadas desde tu sistema de almacenamiento (p. ej. base de datos) // Supongamos que tienes una lista de cookies guardadas en una variable llamada savedCookiesList
foreach (var savedCookie in savedCookiesList) { var cookie = new Cookie { Name = savedCookie.Name, Value = savedCookie.Value, Domain = savedCookie.Domain, Path = savedCookie.Path, Expires = savedCookie.Expires, Secure = savedCookie.Secure, HttpOnly = savedCookie.HttpOnly };
cookieManager.SetCookieAsync(chromeBrowser.Address, cookie); } }
En el método LoadSavedCookies estableces las cookies utilizando el método SetCookieAsync. De esta manera, las cookies guardadas se asignarán correctamente y tu sesión debería mantenerse activa sin tener que volver a vincular el dispositivo.
|
|
|
En línea
|
|
|
|
rigorvzla
Desconectado
Mensajes: 221
|
muchisimas graciaas lo pondre en practica , gracias por tu tiempo
|
|
|
En línea
|
|
|
|
elektrostudios2
Desconectado
Mensajes: 28
|
En realidad, y para tu escenario en particular, lo único que debes hacer es establecer el valor true para la propeidad CefSettings.PersistSessionCookies ( https://cefsharp.github.io/api/63.0.0/html/P_CefSharp_CefSettings_PersistSessionCookies.htm) al inicializar Cefsharp. Esto simplifica y evita la adición de código adicional para guardar y cargar cookies de forma arbitraria. Aquí puedes encontrar un ejemplo en VB.NET: - https://github.com/ElektroStudios/Markdown-Toolbox/blob/main/solution/Markdown%20ToolBox/Model/CefSharpUtil.vb#L69Un ejemplo mucho más reducido usando C#: public bool InitializeCefSharp() { var settings = new CefSettings { PersistSessionCookies = true }; return Cef.Initialize(settings, performDependencyCheck: true); }
Dicho esto, debes tener en cuenta que la función Cef.Initialize debes llamarla ANTES de haber inicializado ningún navegador (por lo general, una instancia de la clase ChromiumWebBrowser). Esto es, por lo general, antes de cargar y mostrar el form de tu aplicación: internal static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); InitializeCefSharp(); Application .Run(new Form1 ()); } }
Aténtamente, Elektro.
|
|
« Última modificación: 21 Febrero 2024, 05:48 am por elektrostudios2 »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cookies en el PHP
PHP
|
dimitrix
|
8
|
2,780
|
9 Mayo 2008, 16:20 pm
por dimitrix
|
|
|
Cookies Filesonic Premium (397) + Cookies Checker
Software
|
Eleкtro
|
0
|
2,373
|
21 Noviembre 2011, 18:21 pm
por Eleкtro
|
|
|
Cookies Wupload Premium (1.819) + Cookies Checker
Software
|
Eleкtro
|
0
|
3,059
|
21 Noviembre 2011, 18:23 pm
por Eleкtro
|
|
|
HOW TO: Cookies and Passwords with DSNIFF suite and NGREP ( Cookies and Pass )
Hacking
|
yarolinux
|
4
|
6,180
|
24 Enero 2012, 23:58 pm
por darkvector
|
|
|
Escanea las cookies de cualquier web por la que navegues con Web Cookies
Noticias
|
wolfbcn
|
0
|
1,793
|
30 Octubre 2016, 01:34 am
por wolfbcn
|
|