Ein größeres Vista Problem (Einloggen)

Kruemelino

Aktives Mitglied
Mitglied seit
21 Jan 2006
Beiträge
1,304
Punkte für Reaktionen
84
Punkte
48
Hallo,

wie ja einige von euch wissen, bin ich einer der Telefon-dingsbums Entwickler.
Ich sitze hier vor einem riesigen Problem. Das Outlook-Makro verwendet einen Link auf die FB zum einloggen:
Code:
http://192.168.178.1/cgi-bin/webcm?getpage=../html/de/menus/menu.html&login:command/password=PASSWORD
Leider funktioniert das unter Vista nicht mehr. Es scheint blockiert zu werden. Es liegt auch nicht an winhttp oder an dem Makro.

Ist das Problem bekannt? Gibt es Lösungen? Wie kann ich mich noch einloggen? Ohne das einloggen auf die FB ist das Makro, welches sehr beliebt ist, recht sinnlos.

(Die Lösung auf XP umzusteigen ist sinnlos und führt zu keiner Lösung)

Danke für eure Hilfe

Gert
 
Hmm. Der Link funktioniert bei mir nicht mal mit IE7 auf XP2...

Ich mache aus meinem Capture-Tool ein HTTP Post auf

http://fritz.box/cgi-bin/webcm

mit den (bereits URL-encodeten) Daten

login%3Acommand%2Fpassword=xxxxxx&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Findex.html&var%3Alang=de&var%3Apagename=home&var%3Amenue=home

wobei xxxx dann durch das jeweilige URL-encodete Passwort ersetzt wird.

Habe ich mir mal irgendwie rausgeschnüffelt mit Wireshark.

Grüsse
 
Damit komme ich nicht so richtig klar, kannst du mir mal eine komplette einlogg routine schicken?
Code:
    http.Open "POST", "http://" & FBOX_ADR & "/cgi-bin/webcm", False
    http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    Formdata = "login%3Acommand%2Fpassword=" & URLEncoder(FBOX_PASSWORD) & "&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Findex.html&var%3Alang=de&var%3Apagename=home&var%3Amenue=home"
    http.send Formdata
so scheint es bei mir nicht so richtig zu funktionieren.

oder hab ich was vergessen?

gruß

Gert
 
Code:
Source := TMemoryStream.Create;
try
Login := 'login%3Acommand%2Fpassword=xxxxxx&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Findex.html&var%3Alang=de&var%3Apagename=home&var%3Amenue=home';
Login := StringReplace(Login, 'xxxxxx', UrlEncode(Form1.Edit1.Text, true), []);
Source.Write(Login[1], Length(Login));
FHTTP.Post('http://fritz.box/cgi-bin/webcm', Source, Response);
finally
Source.Free;
end;

Sieht ja fast so aus, wie Deine, ist nur Delphi... Allerdings: Ich habe hier kein Vista. Vielleicht kannst Du ja mal mein Tool ausprobieren? Das hat diese Sequenz drin. http://www.ip-phone-forum.de/showthread.php?t=129725

Grüsse
 
Danke für den Test. Aber so richtig weiter hilft Dir das wohl auch nicht...

Zeichne doch mal beide Sequenzen auf (Wireshark), vielleicht siehst Du dann mehr...

Grüsse
 
Deine:
Code:
POST /cgi-bin/webcm HTTP/1.0
Host: fritz.box
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Content-Type: application/x-www-form-urlencoded
Content-Length: 162
login%3Acommand%2Fpassword=xxxxxx&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Findex.html&var%3Alang=de&var%3Apagename=home&var%3Amenue=homeHTTP/1.0 200 OK
Cache-Control: no-cache
Content-type: text/html
Expires: -1
Pragma: no-cache
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"."http://www.w3.org/TR/html4/loose.dtd">
<html>
Meine:
Code:
POST /cgi-bin/webcm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)
Accept: text/html, */*
Content-Length: 162
Content-Type: application/x-www-form-urlencoded; Charset=UTF-8
Host: fritz.box
Connection: Keep-Alive
login%3Acommand%2Fpassword=xxxxxx&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Findex.html&var%3Alang=de&var%3Apagename=home&var%3Amenue=homeHTTP/1.0 200 OK
Content-Type: text/plain
getcgivars(): Unsupported Content-Type.

Da steh' ich nun, ich armer Thor!
Und bin so klug als wie zuvor

Oder wolltest du was anderes sehen
 
Ich denke, die Ursache ist Deine Deklaration des Content-Types zu text/plain. Mach mal text/html draus.
 
ich krieg das ni gebackenhast du icq? willst dich mal bei mir melden und mir helfen? 155067736 Ich kann dem zwar sagen, dass der er ein text/html machen soll, aber es funzt nicht. text/plain steht dann immernoch da
 
Habe kein ICQ. Poste doch mal das Stück Code hier...
 
hab grad mal wieder rumgebastelt. keine lösung gefunden.
wenn ich im WinXP hinter dem einloggen einen debug.print mache erhalte ich die einloggseite. wenn ich das unter Vista mache, dann kommt da: "getcgivars(): Unsupported Content-Type."
Warum das?
 
Schau mal in der Registry nach ob der Eintrag überhaupt vorhanden ist:

HKEY_CLASSES_ROOT / .html

dort sollte NAME("Content Type") TYP("REG_SZ") WERT("text/html") und NAME("PerceivedType") TYP("REG_SZ") WERT("text") eingetragen sein, ansonsten musst du das anlegen.

P.S. Ich habe leider noch kein Vista, habe nur vorhin gehört, dass z.B. XML nicht korrekt eingetragen sein soll, daher die Vermutung.
 
Hallo,

1. Entschuldigt bitte mein Doppelpost.
2. Ich habe einen Unterschied zwischen XP und Vista entdeckt.
XP:
Content-Type: application/x-www-form-urlencoded\r\n
Vista:
Content-Type: application/x-www-form-urlencoded; Charset=UTF-8\r\n

Hat jemand eine Idee wie man das umstellen kann?

Gert
 
Ich glaube das nicht. Mein content-type kommt doch auch ohne Charset=UTF-8 daher und so, wie ich es verstanden habe, geht meinn Programm doch unter Vista, oder?

Grüsse
 
Ja dein Programm funktioniert.
Und zwar dein Content-Type: application/x-www-form-urlencoded\r\n
ohne Charset=UTF-8.
Aus irgendeinem Grund ist bei meinem Makro ein UTF-8 drinne. Und deshalb geht das nicht. Unter XP ist das bei meinem Makro ebendfalls nur "Content-Type: application/x-www-form-urlencoded\r\n".
 
Jede Entwicklungsumgebung erlaubt Dir doch auf irgendeine Weise sowas wie "SetHeader" oder SetRequestHeader o.ä.. Der Content-Type gehört in den HTTP Header.

In Delphi sieht das so aus:

HTTPRequest.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

Grüsse
 
ja, gibts im vba auch:
Code:
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
funktioniert nicht (wird im WireShark als Content-Type: application/x-www-form-urlencoded; Charset=UTF-8\r\n angezeigt)
Code:
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1"
funktioniert nicht (im WireShark: Content-Type: application/x-www-form-urlencoded; Charset=iso-8859-1\r\n)
Code:
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-15"
funktioniert nicht
(WireShark: Content-Type: application/x-www-form-urlencoded; Charset=iso-8859-15\r\n)

Ich blick nicht mehr durch
 
Kann es sein, dass Deine zu postenden Daten UTF-8 enthalten? So dass der Stack implzit diesen Tag hinzufügt (was er ja offenbar macht)?

UTF-8 beinhaltende Textdateien starten z.B. immer mit der hex Signatur EF BB BF 3C, liest sich dann so "<"

Grüsse
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.