Ich habe einen WCF-Service mit einem benutzerdefinierten UserNamePasswordValidator
mit einem basicHttpBinding
unter Verwendung von HTTPS entwickelt. Es funktioniert hervorragend mit einem .Net-Client, der ClientCredentials verwendet, um den Benutzernamen und das Passwort für die Authentifizierung zu senden.
Ich muss dies jedoch von einem Delphi XE-Client aus aufrufen. Wie sende ich das Äquivalent von .Net ClientCredentials mit Delphi? Ist das möglich? Wenn es ist, wie? Wenn nicht, gibt es Alternativen?
Tks
BEARBEITEN
Unten ist mein clientseitiger Code in .Net:
%Vor%BEARBEITEN
Ich habe einige Nachforschungen angestellt und konnte die Authentifizierung zwischen Delphi und alten asmx-Webdiensten mit SOAP Hearders durchführen. Ich habe den folgenden Artikel gefunden. Kann ich mit der Technik des Artikels dasselbe Verhalten des alten [WebMethod] [System.Web.Services.Protocols.SoapHeader("SoapHeader")]
erreichen?
EDIT BOUNTY
Die get als die richtige Antwort der Bounty markiert, möchte ich in der Lage sein, den Web-Service von Delphi mit WCF Service UserNamePasswordValidator
auf der Serverseite aufrufen.
Zuerst ist basicHttpBinding über HTTP (nicht HTTPS)
Um einen WFC-Service von Delphi zu verwenden, wird normalerweise eine WSDL aus dem Service erstellt
So erstellen Sie eine einzelne WSDL-Datei von bestehenden WCF-Service?
WCF: Wie erzeugt man ein einzelnes WSDL-Dokument? , ohne WSDL: importieren?
und generieren Sie eine Delphi-Proxy-Klasse, indem Sie diese WSDL in Ihr Delphi-Projekt importieren.
%Vor%und verwende dann die generierte Delphi-Unit in deinem Delphi-Projekt
Die Parameter, die Sie an Serviceaufrufe senden (Benutzername, Passwort, ClientCredentials usw.), werden in der generierten Delphi-Einheit definiert - sollte kein Problem darstellen, solange Sie sich mit dem Service verbinden können.
Tags und Links wcf delphi authentication soapheader