![]() |
Twebbrowser mit Password und Username
Hallo erstmal,
bekommt man es mit einem Twebbrowser irgendwie hin, dass wenn ich bei .Naviagte eine Seite/IP angebe, dass er mich nicht immer nach dem Usernamen und Passwort fragt, wenn ich die Anwendung neu starte? Kann ich das in irgendwelchen Eigenschaften einstellen? Wäre echt super wenn ihr mir da helfen könntet. MFG Alex |
Re: Twebbrowser mit Password und Username
*push*
Jemand irgendeine Idee? MFG Alex |
Re: Twebbrowser mit Password und Username
Hallo Alex,
der HTTP Challenge-Response-Mechanismus wird in ![]() Du kannst einen Authorization Header vorab senden und wirst dann vom Server nicht mehr gefragt. Vom Prinzip her sieht das für die Basic Authentication so aus:
Delphi-Quellcode:
Oft ist es interessanter den Header im Ereignis OnBeforeNavigate2() beizusteuern. Wenn du unterschiedliche Seiten besuchen willst, dann macht es vielleicht Sinn für jeden Realm die Credentials zu hinterlegen und erst auf die Response-Codes 401 bzw. 407 zu reagieren.
uses
Base64; procedure TDemoForm.ButtonClick(Sender: TObject); const USERNAME = 'ADMIN'; PASSWORD = 'adminkey'; var Url, Headers: OleVariant; begin Url := UrlEdit.Text; Headers := 'Authorization: Basic ' + StrToBase64(USERNAME + ':' + PASSWORD); ShowMessage(VarToStr(Headers)); WebBrowser.Navigate2(Url, EmptyParam, EmptyParam, EmptyParam, Headers); end; Grüße vom marabu |
Re: Twebbrowser mit Password und Username
Danke marabu.
Das sieht schon sehr vielversprechend aus. Wo finde ich denn die Unit Base64? Ich benötige die ja für die StrToBase64 Funktion. Wäre gut wenn du mir da noch weiter helfen könntest. MFG Alex |
Re: Twebbrowser mit Password und Username
|
Re: Twebbrowser mit Password und Username
Danke Marabu,
aber in dieser Unit ist die Funktion StrToBase64 nicht. Welche soll ich da nehmen? Danke und viele Grüße, Alex |
Re: Twebbrowser mit Password und Username
Ich habe die Unit selbst noch nicht verwendet, aber durch Analogie-Schluss tippe ich auf Base64Encode():
Delphi-Quellcode:
// ...
// codiert einen String in die zugehörige Base64-Darstellung function Base64Encode(const InText: AnsiString): AnsiString; overload; // ... |
Re: Twebbrowser mit Password und Username
Hallo Marabu,
ich habe leider immernoch das Problem, dass er bei jedem Neustart der Anwendung Username und Passwort abfragt. Ich poste mal mein Source. Vielleicht hilft er dir etwas weiter. MFG Alex
Delphi-Quellcode:
const USERNAME = 'root'; PASSWORD = 'admin'; var Url, Headers: OleVariant; begin Url := 'http:\\172.20.110.100'; Headers := 'Authorization: Basic ' + Base64Encode(USERNAME + ':' + PASSWORD); ShowMessage(VarToStr(Headers)); WebBrowser1.Navigate2(Url, EmptyParam, EmptyParam, EmptyParam, Headers); end; |
Re: Twebbrowser mit Password und Username
Hi Alex,
bist du denn sicher, dass Basic Authentication und nicht Digest Authentication verwendet wird? Schau dir doch mal die (LiveHTTP) Header an, wenn du dich interaktiv anmeldest. Korrektur: Beim Testen habe ich festgestellt, dass Headers nicht als Array sondern als String übergeben werden müssen - inklusive der HTTP Endekennung CRLF für jeden Header:
Delphi-Quellcode:
So funktioniert es bei mir. Getestet habe ich mit dem Sambar HTTP-Server.
var
Url, Headers: OleVariant; begin Url := UrlEdit.Text; Headers := 'Authorization: Basic ' + StrToBase64(USERNAME + ':' + PASSWORD) + sLineBreak; WebBrowser.Navigate2(Url, EmptyParam, EmptyParam, EmptyParam, Headers); end; Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz