public LoginWebBrowser()
        {
            InitializeComponent();

            _cookieVisitor = new CookieCollector();

            SetupEvents();
        }
Esempio n. 2
0
        /// <summary>
        /// 3. 结束工作(关闭窗体)
        /// </summary>
        /// <param name="cookieAddress">Cookie 地址</param>
        /// <param name="cookieStr">Cookie 字符串</param>
        /// <param name="closeForm">是否关闭窗体</param>
        public async void EndWork(string cookieAddress, string cookieStr = null)
        {
            isEnding = true;
            string cookieHeader = null;

            if (!string.IsNullOrEmpty(cookieAddress) && cookieStr == null)
            {
                var visitor = new CookieCollector();
                Cef.GetGlobalCookieManager().VisitUrlCookies(cookieAddress, true, visitor);

                var cookiesList = await visitor.Task; // AWAIT !!!!!!!!!
                cookieHeader = GetCookieStr(cookiesList);
            }
            else if (cookieAddress == null && cookieStr != null)
            {
                cookieHeader = cookieStr;
            }

            // 关键的赋值
            cookie = cookieHeader;
            historyCookie[EndUrlReg] = cookieHeader;

            // 关闭窗体
            if (form != null && !form.IsDisposed)
            {
                MainForm._mainForm.Invoke(new Action(() =>
                {
                    form.Close();
                }));
            }

            form    = null;
            browser = null;

            // 清理 Cookie
            if (visitedAddress.Count > 0)
            {
                // 删除已访问过网页的 Cookie
                foreach (var address in visitedAddress)
                {
                    var visitor = new CookieCollector(deleteAllCookie: true);
                    Cef.GetGlobalCookieManager().VisitUrlCookies(address, true, visitor);
                }
            }
        }