Wie löste ich Benutzername / Passwort-Anmeldeinformationen von PHP-Client an den Self-Hosted-WCF-Dienst an?

StackOverflow https://stackoverflow.com/questions/6059524

Frage

Ich habe einen selbsthostierten WCF-Dienst, der nur zwei Zahlen hinzufügt und den Wert zurückgibt. Es funktioniert gut, aber ich bin nicht sicher, wie ich den Benutzernamen und das Kennwort über den PHP-Client senden kann, sodass sie gegen meinen CustomusernamePasswordValidator validiert wird. Hier ist die Implementierung für die Add-Methode: generasacodicetagpre.

Hier ist meine aktuelle App.config: generasacodicetagpre.

Ich starte den Dienst so: generasacodicetagpre.

Für den PHP-Client mache ich: generasacodicetagpre.

Das obige funktioniert ohne Authentifizierung gut, aber ich möchte den Benutzernamen und das Kennwort von dem phpclient authentifizieren können. Wenn sie versuchen, auf meinen Dienst zuzugreifen, möchte ich, dass der Benutzername und das Kennwort über die Übernahme-Validate-Methode des BenutzernamepasswordValidators validiert werden, das derzeit als: definiert ist generasacodicetagpre.

Ich benutze nur den Test und testen Sie als Beispiel für den Benutzernamen und das Kennwort. Ich weiß, ich muss die Verhaltenskonfiguration ändern und eine verbindliche Konfiguration durchführen, sodass der Dienst den CustomusieNamePasswordValidator verwenden wird, aber da ich PHP nicht kenne, bin ich nicht sicher, wie Sie die Anmeldeinformationen von PHP an den WCF-Dienst senden sollen Sobald die Anmeldeinformationen gesendet werden, weiß ich nicht, wie Sie es in den WCF-Dienst einstellen sollen. Ich ersteller keinen WCF-Service. Ich dachte, ich könnte generakodicetagcode und client.ClientCredentials.UserName.UserName tun, aber dies ist nur, wenn ich den .NET-Client erwerbst, den ich nicht bin.

Eine andere Frage, die ich hatte

, idealerweise, ideal, was ich tun möchte, ist eine SOAP-Anforderung vom PHP-Client an den WCF-Dienst zu senden, also wenn jemand mich dafür in die richtige Richtung zeigen kann, wäre das großartig.

Ich habe gerade das Folgende ausprobiert, aber es funktionierte nicht (Hinzufügen wurde aufgerufen, aber es wurde nicht authentifiziert) generasacodicetagpre.

update: Meine PHP-SOAP-Client-Initialisierung ist jetzt: generasacodicetagpre.

Indem Sie das oben genannte tun, fügte es in der Anforderung Folgendes hinzu: generasacodicetagpre.

Mein WCF-Dienst, der in einer Konsolen-App gehostet wird, nimmt diese Autorisierung nicht ab, ich habe einen benutzerdefinierten Benutzername-Validator, der einen harten Testwert für den Benutzernamen und den Test für das Kennwort aufweist, aber wenn ich Versuchen Sie "test2" für das Login, es ruft immer noch die Methode an. Ich verwende den TransportwithCreditMyOnly und der Nachricht="Benutzername"

War es hilfreich?

Lösung

Try SoapClient constructor overload:

$client = new SoapClient("some.wsdl", array('login'    => "some_name",
                                            'password' => "some_password"));

And here is the doc: http://www.php.net/manual/pl/soapclient.soapclient.php

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top