AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi 10.3 SOAP - Cookies werden nicht gespeichert

Delphi 10.3 SOAP - Cookies werden nicht gespeichert

Ein Thema von Crocotronic · begonnen am 11. Jan 2019 · letzter Beitrag vom 2. Apr 2019
Antwort Antwort
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#1

Delphi 10.3 SOAP - Cookies werden nicht gespeichert

  Alt 11. Jan 2019, 16:01
Hallo zusammen,

seit Delphi Rio funktionieren sämtliche Anwendungen nicht mehr, die einen SOAP-Service konsumieren und dabei eine Session benötigen, die in Form eines Cookies gespeichert werden.
Die Aufforderungen in den jeweiligen HTTP-Responses, einen Cookie zu generieren (Set-Cookie), werden ignoriert und daher im INetCache ebenfalls nicht aufgeführt. Auch wenn der Cookie existiert (z.B. erzeugt von der alten kompilierten Software), wird er nicht verwendet.

Weiß jemand, was dort in den Tiefen der SOAP-Bibliothek geändert wurde?
Die Hierarchi bishin zum eigentlichen Client sieht folgendermaßen aus:
Code:
THTTPRIO -> THTTPReqResp -> THTTPClient
Dort ist die Eigenschaft "AllowCookies" standardmäßig auf true.

Vielen Dank für Eure Hilfe,
Grüße

Croco
  Mit Zitat antworten Zitat
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Delphi 10.3 SOAP - Cookies werden nicht gespeichert

  Alt 14. Feb 2019, 11:36
Die haben anscheinend komplett den HTTP-Client getauscht.
Früher wurde mittels WinInet kommuniziert und jetzt wird in der Klasse THTTPReqResp aus der Unit Soap.SOAPHTTPTrans eine Instanz von THTTPClient verwendet.

Ich habe auch gerade das Problem, wenn man mit mehreren Soap-Services kommuniziert und die Authentifizierung mittels Cookie erfolgt ist. Da man für jeden Service eine eigenen HTTPRIO benötigt (war schon immer so) muss man das Cookie von einem RIO zum nächsten übermitteln. Das war früher anders!!!

Mein Ansatz, den ich gerade versuche zu implementieren, ist, dass ich über den Event "HTTPRIOLoginHTTPWebNode1BeforePost" mir den CookieManager vom Service / HTTPRIO, der für das Login verantworlich ist, abgreife und das Cookie dem anderen RIO unterzuschieben.

Falls ich es hinbekomme, packe ich Beispiel-Code dabei
Thomas
  Mit Zitat antworten Zitat
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi 10.3 SOAP - Cookies werden nicht gespeichert

  Alt 14. Feb 2019, 11:48
Delphi-Quellcode:
  TForm1 = class(TForm)
    HTTPRIOLogin: THTTPRIO;
    HTTPRIOPicture: THTTPRIO;
    procedure HTTPRIOLoginHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient);
    procedure HTTPRIOPictureHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    FLogin: SoapLoginService;
    FPicture: SoapPictureService;
    FCookieManager: TCookieManager; // im Create oder Show auf nil setzen
  public
    { Public-Deklarationen }
  end;

procedure TForm1.HTTPRIOLoginHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient);
begin
  if FCookieManager = nil then
    FCookieManager := Client.CookieManager;
end;

procedure TForm1.HTTPRIOPictureHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient);
var
  aCookie: TCookie;
begin

  for aCookie in FCookieManager.Cookies do
  begin
    if aCookie.Name = 'JSESSIONIDthen
      Client.CookieManager.AddServerCookie(aCookie, TUri.Create(HTTPRIOPicture.URL));
  end;
end;
Thomas
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#4

AW: Delphi 10.3 SOAP - Cookies werden nicht gespeichert

  Alt 2. Apr 2019, 15:30
Gibt es hier Neuigkeiten, ob das Problem behoben wurde?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:34 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