Einzelnen Beitrag anzeigen

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