AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WebRequest.Authorisation (HTTPApp.TWebRequest)...
Thema durchsuchen
Ansicht
Themen-Optionen

WebRequest.Authorisation (HTTPApp.TWebRequest)...

Ein Thema von FriFra · begonnen am 1. Mai 2005 · letzter Beitrag vom 19. Jun 2008
Antwort Antwort
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#1

WebRequest.Authorisation (HTTPApp.TWebRequest)...

  Alt 1. Mai 2005, 21:28
Kann man aus dem String WebRequest.Authorisation (HTTPApp.TWebRequest) irgendwie den Usernamen und das Passwort auslesen?
Sicher ist nur, der zurückgelieferte Wert ändert sich bei Änderung von Username bzw.Passwort und hat z.B. folgenden Inhalt: "Basic WWEwdWEcvfFEW12eDSDscCX_"

Ich will im Prinzip alle Requests an meine ISAPI-dll an einen externen Server weiterleiten und das Ergebnis am Client ausgeben. Momentan verwende ich einen IdHTTP-Client zum Anfordern der Daten des 2. Servers. So lange keine Authentifizierung nötig ist klappt alles sehr gut... nur eben nicht mit Authentifizierung, da ich dem IdHTTP die entspr. Daten nicht mitgeben kann. Wenn ich dem IdHTTP Username und passwort fest zuweise klappt alles, nur ist das eben "etas" zu unsicher
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: WebRequest.Authorisation (HTTPApp.TWebRequest)...

  Alt 19. Jun 2008, 15:38
Gleiches Problem hat mich auch beschäftigt...

Also mal kurz geschaut, so baut den String Indy zusammen:
Delphi-Quellcode:
function TIdBasicAuthentication.Authentication: String;
begin
  result := 'Basic {do not localize}
    + TIdEncoderMIME.EncodeString(Username + ':' + Password); {do not localize}
end;
Das heißt, man kann es auch dekodieren
Delphi-Quellcode:

{...}

Uses IdCoderMIME;

{...}

Procedure TwbmHelloWorld.wbmHelloWorldwbaTestAccAction( Sender: TObject; Request: TWebRequest; Response: TWebResponse; Var Handled: Boolean );
Var sAuth: String;
Const cAuthBasic = 'Basic ';
Begin
  sAuth := '';
  If Request.Authorization <> 'Then Begin
    If SameText( cAuthBasic, Copy( Request.Authorization, 1, Length( cAuthBasic ) ) ) Then Begin
      If Length( Request.Authorization ) > Length( cAuthBasic ) Then Begin
        sAuth :=TIdDecoderMIME.DecodeString( Copy( Request.Authorization,
                                               Length( cAuthBasic ) + 1,
                                               Length( Request.Authorization ) ) );

      End;
    End;
  End;

  {...}
End;
Hintergrund:
Zitat:
Die zum Server übertragenen Zugangsdaten müssen das Format "<Benutzername>:<Passwort>" haben und als ganzes BASE-64 ("MIME") codiert sein. Im Kontextmenü des Eingabefeldes "Ersetzungsausdruck" gibt es dafür einen Menüpunkt, der den jeweils markierten Text codiert oder decodiert.
Der Inhalt des ganzen Feldes muss so aussehen: basic PEJlbnV0emVybmFtZT46PFBhc3N3b3J0Pg==
"basic" ist die Name des Anmeldeverfahrens und der nachfolgende String ist die codierte Form der Zugangsdaten.
Bye Christian
Christian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz