Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

WSDL: Session-ID mit PHP nutzen?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Business-Experte
PostRank 8
PostRank 8
Beiträge: 794
Registriert: 05.02.2009, 17:05

Beitrag von Business-Experte » 12.11.2012, 16:50

Hallo,

ich setze mich gerade erstmals mit dem Thema passwortgeschützte WSDL auseinander.
Also... Ich habe da eine URL und ein WSDL.

Ich nutze den in PHP eingebauten SoapClient.
Damit rufe ich nun die login-Operation auf, mit User, Domain und Passwort als Parameter.
Im Ergebnis erhalte ich dann eine SessionId und ein SessionTimeout.

So, wenn ich nun weitere Operationen nutzen will, erhalte ich "Permission Denied". Weil: Ich muss dem Webservice ja sicher irgendwie meine SessionId vorzeigen?

Aber wie und wo?
In der Parameterliste der anderen Operationen steht nichts von einer SessionId.

Wie zeige ich dem Webservice meine SessionId?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 13.11.2012, 19:16

Eine gute Frage und bisher möchte keiner auf die Frage eingehen?

Ich kenne mich nur mit den Sessions aus, die sich mit session_start() erzeugen lassen. Und wenn die Seite abc1.php die Session erzeugt hat, wird auf der Seite abc2.php abgefragt, ob die Session mit den gesetzten Parameter-Werte-Paaren existiert, wobei die Daten von der Session in einem Sessions Cookie gespeichert werden und bei GET oder POST mit der PHPSESSID im HTTP-Header übertragen werden.

Nun ist ja das bei Dir etwas anders, Deine Anwendung bekommt eine Session zugewiesen. Sollte die nicht ebenfalls im Header bei Request und Response übermitteln werden? Meine Scripts liegen ja nun bei mir auf dem Server und der unterhält sich ja nur mit den Clienten.

Nun kann das Unfug sein, was ich schreibe, doch wenn Dein Script, welches auf Deinem Server liegt, nun aber von einem anderen Server eine Session zugeteilt bekommt, die nimmt ja Dein Server nicht an. Somit müsstest Du eventuell den Response-Header auslesen und im Request-Header wieder mit senden oder so. War nur laut gedacht, könnte auch Unfug sein und sich völlig anders verhalten.

Hier steht schon mal etwas:
6.3 SOAP Binding of sessionID
https://www.ecma-international.org/publ ... MA-366.pdf

Mit SOAP habe ich auch noch nichts zu tun gehabt, doch wenn ich mir die Beispiele ansehe, dann könnte das etwa so aussehen:

Code: Alles auswählen

        <SessionHeader>
            <sessionId>8789364113604871127</sessionId>
        </SessionHeader>
https://php.net/manual/de/ref.soap.php

Business-Experte
PostRank 8
PostRank 8
Beiträge: 794
Registriert: 05.02.2009, 17:05

Beitrag von Business-Experte » 13.11.2012, 22:01

Ja, genau! Ich bin ja der Client und nicht der Server.
Ich habe zwischenzeitlich schon hier ein passendes Beispiel herausgesucht:
https://www.php.net/manual/de/ref.soap.php#83028

Aber dafür bin ich nun nicht mehr wach genug. Hebe ich mir für morgen auf.
Deinen Hinweis werde ich mir auch noch durchlesen, danke!

Man hats nicht leicht, aber leicht hats einen... Hat mein Opa immer gesagt.