Ejemplo n.º 1
0
        public IEnumerable <Chromium.Cookie> GetCookiesBy(Chromium.CookieHeader by, object value, byte[] key)
        {
            List <Chromium.Cookie> cookies = new List <Chromium.Cookie>();

            if (value == null)
            {
                throw new ArgumentNullException("value");                // throw a ArgumentNullException if value was not defined
            }
            if (!CookiesExist())
            {
                throw new CookieDatabaseNotFoundException(ChromiumBrowserCookiePath);                  // throw a CookieDatabaseNotFoundException if the Cookie DB was not found
            }
            // Copy the database to a temporary location because it could be already in use
            string tempFile = GetTempFileName();

            File.Copy(ChromiumBrowserCookiePath, tempFile);

            using (var conn = new System.Data.SQLite.SQLiteConnection($"Data Source={tempFile};pooling=false"))
                using (var cmd = conn.CreateCommand())
                {
                    cmd.CommandText = $"{CookieCommandText} WHERE {by} = '{value}'";

                    conn.Open();
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            // Store retrieved information:
                            cookies.Add(new Chromium.Cookie()
                            {
                                CreationUTC     = reader.GetInt64(0),
                                TopFrameSiteKey = reader.GetString(1),
                                HostKey         = reader.GetString(2),
                                Name            = reader.GetString(3),
                                Value           = reader.GetString(4),
                                EncryptedValue  = DecryptWithKey((byte[])reader[5], key, 3),
                                Path            = reader.GetString(6),
                                ExpiresUTC      = reader.GetInt64(7),
                                IsSecure        = reader.GetBoolean(8),
                                IsHttpOnly      = reader.GetBoolean(9),
                                LastAccessUTC   = reader.GetInt64(10),
                                HasExpires      = reader.GetBoolean(11),
                                IsPersistent    = reader.GetBoolean(12),
                                Priority        = reader.GetInt16(13),
                                Samesite        = reader.GetInt16(14),
                                SourceScheme    = reader.GetInt16(15),
                                SourcePort      = reader.GetInt32(16),
                                IsSameParty     = reader.GetBoolean(17),
                            });
                        }
                    }
                    conn.Close();
                }
            File.Delete(tempFile);

            return(cookies);
        }
Ejemplo n.º 2
0
        public IEnumerable <Chromium.Cookie> GetAllChromiumCookiesBy(Chromium.CookieHeader by, object value)
        {
            List <Chromium.Cookie> cookies = new List <Chromium.Cookie>();

            // Add Cookies to list:
            cookies.AddRange(CG.GetCookiesBy(by, value));
            cookies.AddRange(BG.GetCookiesBy(by, value));
            cookies.AddRange(VG.GetCookiesBy(by, value));
            cookies.AddRange(OG.GetCookiesBy(by, value));
            cookies.AddRange(OGG.GetCookiesBy(by, value));
            cookies.AddRange(EG.GetCookiesBy(by, value));

            return(cookies);
        }
Ejemplo n.º 3
0
 public Tuple <IEnumerable <Chromium.Cookie>, IEnumerable <Firefox.Cookie> > GetAllCookiesByChromium(Chromium.CookieHeader by, object value)
 => new Tuple <IEnumerable <Chromium.Cookie>, IEnumerable <Firefox.Cookie> >(GetAllChromiumCookiesBy(by, value), FG.GetCookies());
Ejemplo n.º 4
0
 public IEnumerable <Chromium.Cookie> GetCookiesBy(Chromium.CookieHeader by, object value) => GetCookiesBy(by, value, GetKey());