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); }
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); }
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());
public IEnumerable <Chromium.Cookie> GetCookiesBy(Chromium.CookieHeader by, object value) => GetCookiesBy(by, value, GetKey());