Entwickler-Ecke

Internet / Netzwerk - WKW Login via IdHTTP + Cookie


dennyhks1988 - Do 17.03.11 09:50
Titel: WKW Login via IdHTTP + Cookie
Hallo Liebe Delphi-Forum Community,

Ich hoffe ich finde hier jemand der mir Helfen kann.
Ich versuche nun die ganze nacht schon Login-Tool für
Wer-kennt-wen zu schreiben.

Ich habs bisher geschaft das er mich via SSL Einlogt
aber nicht das wkw das Die Cookies erkent.

Im klartext heist das: Ich kann mich zwahr Einloggen
aber bekomme die Meldung das Cookies nicht gespeichert werden würden.

Drotz das ich den Indy CookieManager verwände.

Hier mal mein bisherrieges getippe:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdCookie, IdIntercept, IdLogBase, IdLogEvent, StdCtrls,
  IdCookieManager, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StrUtils, ExtCtrls, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack,
  IdSSL, IdSSLOpenSSL;

type
  TfrmMain = class(TForm)
    IdHTTP: TIdHTTP;
    IdCookieManager: TIdCookieManager;
    memLog: TMemo;
    IdLogEvent: TIdLogEvent;
    pnlMain: TPanel;
    btnLogin: TButton;
    btnLogout: TButton;
    lblEmail: TLabel;
    edtEmail: TEdit;
    lblPassword: TLabel;
    edtPassword: TEdit;
    Button1: TButton;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    Button2: TButton;
    procedure btnLogoutClick(Sender: TObject);
    procedure btnLoginClick(Sender: TObject);
    procedure IdLogEventSent(ASender: TComponent; const AText, AData: string);
    procedure IdLogEventReceived(ASender: TComponent; const AText, AData: string);
    procedure IdCookieManagerNewCookie(ASender: TObject; ACookie: TIdCookieRFC2109; var VAccept: Boolean);
    procedure Button1Click(Sender: TObject);
    procedure IdHTTPRedirect(Sender: TObject; var dest: string;
      var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
    procedure Button2Click(Sender: TObject);
    private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.btnLoginClick(Sender: TObject);
var
  sHTMLCode: String;
  iPos1, iPos2: Integer;
  sFormKey, sIV, sCheckCode: String;
  slParams: TStringList;
  Str_    : String;
begin
  slParams :=TStringList.Create;

  slParams.Add('loginName='+edtEmail.Text);
  slParams.Add('&pass='+edtPassword.Text);
  //slParams.Add('&stay=1');
  slParams.Add('&logIn=1');

  IdHTTP.AllowCookies := true;

  IdHTTP.Post('https://secure.wer-kennt-wen.de/login/index', slParams);
  slParams.Free;
  //Str_ := IdHTTP.Get('http://www.wer-kennt-wen.de');

end;

procedure TfrmMain.btnLogoutClick(Sender: TObject);
begin
  IdHTTP.Get('http://www.wer-kennt-wen.de/Logout');
end;

procedure TfrmMain.Button1Click(Sender: TObject);
begin
memLog.Lines.SaveToFile('C:\test.html');
end;

procedure TfrmMain.Button2Click(Sender: TObject);
var
 Str_ : String;
 s    : TStringList;
begin
 s := TStringList.Create;
 s.Add(Str_);
 s.SaveToFile('C:\test2.html');
 ShowMessage(s.Strings[0]);
 s.Free;
end;

procedure TfrmMain.IdCookieManagerNewCookie(ASender: TObject; ACookie: TIdCookieRFC2109; var VAccept: Boolean);
begin
  if (ACookie.Path = ''then ACookie.Path :='/';
  memLog.Lines.Add('New Cookie:');
  memLog.Lines.Add('  Comment: '+ACookie.Comment);
  memLog.Lines.Add('  Version: '+Inttostr(ACookie.Version));
  memLog.Lines.Add('  CookieText: '+ACookie.CookieText);
  memLog.Lines.Add('  ServerCookie: '+ACookie.ServerCookie);
  memLog.Lines.Add('  ClientCookie: '+ACookie.ClientCookie);
  memLog.Lines.Add('  Domain: '+ACookie.Domain);
  memLog.Lines.Add('  Expires: '+DateToStr(ACookie.Expires));
  memLog.Lines.Add('  CookieName: '+ACookie.CookieName);
  memLog.Lines.Add('  Path: '+ACookie.Path);
  memLog.Lines.Add('  Value: '+ACookie.Value);
  memLog.Lines.Add('  DisplayName: '+ACookie.DisplayName);
  memLog.Lines.Add('');
end;


procedure TfrmMain.IdHTTPRedirect(Sender: TObject; var dest: string;
  var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
if (VMethod = 'hmPost'then VMethod := 'hmGet';
  memLog.Lines.Add('Redirect:');
  memLog.Lines.Add('  Dest: '+dest);
  memLog.Lines.Add('  NumRedirect: '+IntToStr(NumRedirect));
  memLog.Lines.Add('  Handled: '+IntToStr(Integer(Handled)));
  memLog.Lines.Add('  Method: '+IntToStr(Integer(VMethod)));
  memLog.Lines.Add('');
end;

procedure TfrmMain.IdLogEventReceived(ASender: TComponent; const AText, AData: string);
begin
  memLog.Lines.Add('Received:');
  memLog.Lines.Add(AData);
  memLog.Lines.Add('');
end;

procedure TfrmMain.IdLogEventSent(ASender: TComponent; const AText, AData: string);
begin
  memLog.Lines.Add('Sent:');
  memLog.Lines.Add(AData);
  memLog.Lines.Add('');
end;

end.


Ich weis nicht mehr was ich machen soll ich hab schon versucht das Cookie IdHTTP ohne Cookiemanager zu übergeben was aber auch nicht hilft!

Ich hab vor mir jedeglich nen Tool zu schreiben das mich bei WKW einloggt
und die Anzahl meiner Mails im Postfach Checkt bez verkleicht und mich dan Local am
Rechner benarichtigt wenn ich ne neue Mail im Postfach hab.

Lg
denny

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt


jaenicke - Do 17.03.11 10:59

Hallo und :welcome:

user profile icondennyhks1988 hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab vor mir jedeglich nen Tool zu schreiben das mich bei WKW einloggt
und die Anzahl meiner Mails im Postfach Checkt bez verkleicht und mich dan Local am
Rechner benarichtigt wenn ich ne neue Mail im Postfach hab.
Da hast du wohl die AGB des Betreibers nicht genau genug gelesen. Um genau zu sein Punkt 4.3:
WKW AGB - Punkt 4.3 [http://www.wer-kennt-wen.de/agb.html] hat folgendes geschrieben:
Unzulässig ist zudem der Einsatz von Skripten bei der Nutzung von wer-kennt-wen und das automatisierte Abrufen von Inhalten auf wer-kennt-wen.


Christian S. - Do 17.03.11 11:11

Und daher muss ich den Thread an dieser Stelle leider schließen.