Autor Beitrag
BlackMatrix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: So 10.10.10 20:56 
Die Cookies im Firefox sind ja in einer SQLite Datenbank abgespeichert, jeweils mit Host, Name, Value usw. Nun möchte ich gerne die komplette Datenbank meinem Cookiecontainer übergeben, sodass ich z.B. beim Webrequest einer Seite auch automatisch eingeloggt bin.

Kann ich das so einfach machen oder wird es da Probleme geben?

Ich habe an eine Abfrage von name, value, path, domain von der DB gedacht und dann dem Cookiecontainer hinzufügen, also:

cookiecontainer.Add(new System.Net.Cookie("name""value""path""domain"));

Aber mir ist dabei aufgefallen, dass da ganz schöne Kuriositäten dabei sein, z.B. starten manche host mit ".google.de"

Würdet ihr es auch so machen oder habt ihr eine Alternative?

MfG
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 10.10.10 21:08 
user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
Aber mir ist dabei aufgefallen, dass da ganz schöne Kuriositäten dabei sein, z.B. starten manche host mit ".google.de"

Das bedeutet, dass die Cookies für alle Domains enden, die auf google.de enden - also www.google.de, images.google.de und google.de.

user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
Würdet ihr es auch so machen oder habt ihr eine Alternative?

Definitiv nein, ein Programm soll nicht einfach auf die Datenbank von Firefox zugreifen können. Hast du das schon ausprobiert, funktioniert das wirklich? Ich bin eigentlich davon ausgegangen, dass die Daten verschlüsselt sind.

Die beste Alternative wäre meiner Meinung nach, den Benutzer das Passwort in dein Programm eingeben zu lassen und es selbst zu sichern (natürlich verschlüsselt). Dann weiß der Benutzer auch, welche Rechte er der Anwendung erteilt.
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: So 10.10.10 21:15 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Definitiv nein, ein Programm soll nicht einfach auf die Datenbank von Firefox zugreifen können. Hast du das schon ausprobiert, funktioniert das wirklich? Ich bin eigentlich davon ausgegangen, dass die Daten verschlüsselt sind.



Das ist aber genau das was ich möchte, dass ich mich z.B. ganz normal über den Firefox irgendwo einlogge und wenn ich dann einen Quelltext mit meinem Prog abspeichern möchte, mich nicht erst nochmals mit Webrequest und Webresponse nochmals einloggen muss, sondern mein Prog die Cookies des Firefox verwendet.

Man kann auf die Daten zugreifen, ich bin gerade drüber:

ausblenden C#-Quelltext
1:
command.CommandText = "select name, value, path, host from moz_cookies";					
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 10.10.10 23:16 
user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
Das ist aber genau das was ich möchte, dass ich mich z.B. ganz normal über den Firefox irgendwo einlogge und wenn ich dann einen Quelltext mit meinem Prog abspeichern möchte, mich nicht erst nochmals mit Webrequest und Webresponse nochmals einloggen muss, sondern mein Prog die Cookies des Firefox verwendet.

Das ist also ein Tool, das speziell dafür entwickelt ist, die Daten der geöffneten Firefox-Sitzung zu verarbeiten? Dann ist das was anderes.
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: Mo 11.10.10 18:33 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
Das ist aber genau das was ich möchte, dass ich mich z.B. ganz normal über den Firefox irgendwo einlogge und wenn ich dann einen Quelltext mit meinem Prog abspeichern möchte, mich nicht erst nochmals mit Webrequest und Webresponse nochmals einloggen muss, sondern mein Prog die Cookies des Firefox verwendet.

Das ist also ein Tool, das speziell dafür entwickelt ist, die Daten der geöffneten Firefox-Sitzung zu verarbeiten? Dann ist das was anderes.


Es soll mich bei meiner Arbeit mit dem Internet unterstützen. Soll heißen, dass ich mit beiden, also dem Firefox und meinem Programm ohne Mühe auf Inhalte zugreifen kann, wo eine Autorisierung mit Benutzername und Kennwort notwendig ist. Sodass ich z.B. auf 2 verschiedenen Seiten Quelltexte herunterladen kann ohne expliziet für jede Seite eine Loginmethode zu schreiben, obwohl ich mich zuvor bereits mit dem Firefox eingeloggt habe.
Er soll also einfach die ganze DB im richtigen Format in den Cookiecontainer von meinem Prog packen, damit ich den gleichen Ausgangszustand habe, als würde ich mit dem Firefox surfen.

MfG

edit:

Hab mir jetzt ne Klasse Datenbank erstell und dort eine Selectmethode geschrieben:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
        public List<string> Select(string pfad, string befehl)
        {
            SQLiteConnection connection = new SQLiteConnection(pfad);
            SQLiteCommand command = new SQLiteCommand(connection);

            connection.Open();
            command.CommandText = befehl;

            SQLiteDataReader reader = command.ExecuteReader();

            List<string> liste = new List<string>();

            while (reader.Read())
            {
                for (int i = 0; i < reader.FieldCount; i++)
                    liste.Add(reader[i].ToString());
            }

            connection.Close();
            return liste;
        }


Dann bekomme ich die DB als Liste und muss nun die einzelnen Einträge dem Cookiecontainer zuordnen. Finde das irgendwie sehr unsauber/unsicher programmiert, hast du eine Ahnung wie ich da anders rangehen könnte?

Und dann mit
ausblenden C#-Quelltext
1:
2:
3:
4:
            List<string> cookies = db.Select(pfad, befehl);
            
            for (int i = 0; i < cookies.Count; i += 3)
                    cookiecontainer.Add(new Cookie(cookies[i], cookies[i + 1], "/", cookies[i+2]));


die einzelnen Cookies dem Cookiecontainer übergeben.