コード例 #1
0
        private async void AuthButtonOnClick(object sender, RoutedEventArgs e)
        {
            AuthLoadingBorder.Visibility = Visibility.Visible;
            AuthMesTextBlock.Text        = "认证中,请稍后";

            while (_cookies.IsEmpty())
            {
                var cookieManager = Cef.GetGlobalCookieManager();
                var visitor       = new CookieVisitor();
                visitor.SendCookie += cookie =>
                {
                    _cookies += cookie.Domain.TrimStart('.') + "^" + cookie.Name + "^" + cookie.Value + ";";
                };
                cookieManager.VisitAllCookies(visitor);
                await Task.Delay(100);
            }

            Dispatcher?.BeginInvoke(new Action(async() =>
            {
                Extend.Log(_cookies);

                if (!Site.VerifyCookie(_cookies))
                {
                    AuthMesTextBlock.Text = "认证失败,请确认登录成功";
                    await Task.Delay(4000);
                    AuthLoadingBorder.Visibility = Visibility.Collapsed;
                    return;
                }
                AuthMesTextBlock.Text = "认证成功,4秒后将关闭窗口";
                Site.CurrentSiteSetting.LoginCookie = _cookies;
                await Task.Delay(4000);
                Close();
            }));
        }
コード例 #2
0
        private void okButton_Click(object sender, EventArgs e)
        {
            var cookieManager = CefSharp.Cef.GetGlobalCookieManager();

            CookieVisitor visitor = new CookieVisitor();

            visitor.SendCookie += visitor_SendCookie;
            cookieManager.VisitAllCookies(visitor);
        }
コード例 #3
0
ファイル: CefMainWindow.cs プロジェクト: qlprimer/HotelSys
        public CefMainWindow()
        {
            Instance = this;
            InitializeComponent();
            InitBrowser();

            SetFormTitle(null);
            cookieManager       = CefSharp.Cef.GetGlobalCookieManager();
            visitor             = new CookieVisitor();
            visitor.SendCookie += visitor_SendCookie;
        }
コード例 #4
0
        private void ChromiumWebBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
        {
            string _url          = e.Url;
            var    cookieManager = CefSharp.Cef.GetGlobalCookieManager();

            if (_url.Contains("https://passport.sfacg.com/Message.aspx?msg=LoginSuccessToHome&rul=/"))
            {
                CookieVisitor visitor = new CookieVisitor();
                visitor.SendCookie += Visitor_SendCookie;
                cookieManager.VisitAllCookies(visitor);
            }
        }
コード例 #5
0
 private void ChromiumWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
 {
     if (e.HttpStatusCode == 200 && e.Url.IndexOf("baidu.com") > 0)
     {
         Cookie = "";
         //注册获取cookie回调事件
         CookieVisitor visitor = new CookieVisitor();
         visitor.SendCookie += Visitor_SendCookie;
         var cookieManager = CefSharp.Cef.GetGlobalCookieManager();
         cookieManager.VisitAllCookies(visitor);
     }
 }
コード例 #6
0
ファイル: Init.cs プロジェクト: bahaynes/wabbajack
        public static async Task <Cookie[]> GetCookies(string domainEnding = "")
        {
            var manager = Cef.GetGlobalCookieManager();
            var visitor = new CookieVisitor();

            if (!manager.VisitAllCookies(visitor))
            {
                return(new Cookie[0]);
            }
            var cc = await visitor.Task;

            return((await visitor.Task).Where(c => c.Domain.EndsWith(domainEnding)).ToArray());
        }
コード例 #7
0
        public List <CookiePseudo> GetCurrentCookie(string url)
        {
            cookieList = new List <CookiePseudo>();
            var cookieManager = browser.GetCookieManager();
            var cook          = new CookieVisitor();

            //var c = cookieManager.VisitAllCookies(cook);//url,true,cook
            cookieManager.VisitUrlCookies("http://" + url, true, cook);
            //cookieList = null;
            while (!cook.IsDispose)
            {
                Thread.Sleep(10);
            }
            return(cookieList);
        }
コード例 #8
0
ファイル: LSP.cs プロジェクト: Jonah0x90/LearningSP
        private void InitializeChromium()
        {
            CefSettings settings = new CefSettings
            {
                PersistSessionCookies = true
            };

            Cef.Initialize(settings);

            //https://media.w3.org/2010/05/sintel/trailer.mp4
            chromium = new ChromiumWebBrowser(r.l)
            {
                MenuHandler = new MenuHandler(),
                Dock        = DockStyle.Fill
            };
            chromium.FrameLoadEnd += Browser_FrameLoadEnd;
            cookieVisitor          = new CookieVisitor();

            panel_Web.Controls.Add(chromium);
        }
コード例 #9
0
        public override void OnWindowLoad(Window window, ChromiumWebBrowser browser)
        {
            var screeHeight = SystemParameters.FullPrimaryScreenHeight;
            var screeWidth  = SystemParameters.FullPrimaryScreenWidth;
            var config      = Config;

            window.Invoke(() =>
            {
                window.Title       = config.Title ?? "web2win";
                window.WindowStyle = WindowStyle.SingleBorderWindow;
                window.Topmost     = config.Topmost;
                window.Height      = config.Height ?? 450;
                window.Width       = config.Width ?? 750;
                window.Top         = config.Top ?? (screeHeight - window.Height) / 2;
                window.Left        = config.Left ?? (screeWidth - window.Width) / 2;
                window.MaxHeight   = config.MaxHeight ?? window.MaxHeight;
                window.MaxWidth    = config.MaxWidth ?? window.MaxWidth;
                window.MinWidth    = config.MinWidth ?? window.MinWidth;
                window.MinHeight   = config.MinHeight ?? window.MinHeight;
                if (config.Icon != null && File.Exists(config.Icon))
                {
                    try
                    {
                        window.Icon = new BitmapImage(new Uri(config.Url));
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }

                if (window.Icon == null)
                {
                    //window.Icon = new BitmapImage(new Uri(new Uri(config.Url), "/favicon.ico"));
                    browser.FrameLoadEnd += async(_, x) =>
                    {
                        if (x.Frame.IsMain)
                        {
                            var res = await x.Frame.EvaluateScriptAsync("(function(){return (document.querySelector(\"link[rel = 'shortcut icon']\") || document.querySelector(\"link[rel = 'icon']\") || {}).href;})()");
                            if (res.Success && res.Result is string s && !string.IsNullOrWhiteSpace(s))
                            {
                                window.Dispatcher?.Invoke(() => window.Icon = new BitmapImage(new Uri(s)));
                            }
                        }
                    };

                    if (browser.IsLoaded)
                    {
                        var res = browser.EvaluateScriptAsync("(function(){return (document.querySelector(\"link[rel = 'shortcut icon']\") || document.querySelector(\"link[rel = 'icon']\") || {}).href;})()").Result;
                        if (res.Success && res.Result is string s && !string.IsNullOrWhiteSpace(s))
                        {
                            window.Dispatcher?.Invoke(() => window.Icon = new BitmapImage(new Uri(s)));
                        }
                    }
                }

                if (config.Title == null)
                {
                    window.SetBinding(Window.TitleProperty, new Binding("Title")
                    {
                        Source = browser
                    });
                }
            });


            var cookieManager = browser.GetCookieManager();
            var visitor       = new CookieVisitor();

            visitor.Callback(value =>
            {
                var array = value.Split(',').Select(double.Parse).ToArray();
                window.Invoke(() =>
                {
                    window.Left   = array[0];
                    window.Top    = array[1];
                    window.Width  = array[2];
                    window.Height = array[3];
                });
            });


            cookieManager.VisitUrlCookies("http://location.com", true, visitor);

            if (Config.SaveExitedLocation)
            {
                window.Closing += Window_Closing;
            }
        }