Frage

Ich muss PHP authentifizieren zu einem Exchange-Server haben. Sobald die Lage, um es erfolgreich zu verbinden, ich brauche WebDAV-Anforderungen in der PHP zu schreiben, so kann ich Daten aus dem Exchange-Server extrahieren und sie in einer Web-Anwendung verwenden.

Es wäre außer etwas einfacher sein, dass der Exchange Server 2003 formularbasierte Authentifizierung (FBA) eingeschaltet hat. Mit FBA eingeschaltet ich glaube, ich bin wohl zu tun, was die unten (siehe Link) Blog-Artikel sagt. Mein Problem ist, dass ich helfen, seine Anweisungen für ASP in PHP umgewandelt wird.

http: / /blogs.msdn.com/webdav_101/archive/2008/12/12/webdav-fba-authentication-sample-explained.aspx

Versteht jemand die Details dessen, was er zu diesem Artikel ist zu beschreiben? Einsicht würde helfen.

Weitere spezifische Informationen bei Bedarf:? Ich bin verwirrt, wie die POST-Anforderung konfiguriert werden (ich meine, wenn Sie normalerweise POST-Daten in eine Form, in der Regel nicht Sie der Seite Kommentar verfassen In seinen Anweisungen laden er sagt Post it. /exchweb/bin/auth/owaauth.dll Wie funktionierts?)

Ich bin auch verwirrt, wie der 3. Schritt zu tun aufgelistet: 3.) WebReq.KeepAlive und AllowAutoRedirect sollte auf True auf Antrag festgelegt werden

Hinzu kommt, dass, konnte ich wirklich etwas Hilfe gebrauchen detailliert, wie die Post-Daten zu nehmen und es in einem Cookie in PHP setzen.

Vielen Dank im Voraus für jede Hilfe zur Verfügung gestellt!

War es hilfreich?

Lösung

Ich glaube, der beste Weg, dies zu tun, über curl ist. ( http://ca.php.net/curl )

Auf der Seite verlinkt ist, ist das erste Beispiel eine gute Klasse zu verwenden (ich habe es auf Auto-Login in andere Websites verwendet werden)

Es sollte Keep-Alive hat (Header) und Redirect standardmäßig aktiviert (curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);)

Sie müssen die Webservice, um sicherzustellen, können erstellen / ändern cookie.txt dann versuchen:

$cc = new cURL();
$cc->post('http://www.yourexchange.com','destination=https%3A%2F%2F' . $strServerName . '%2Fexchange%2F' . $strUserName . '%2F&username=' . $strDomain . '%5C' . $strUserName . '&password=' . $strPassword . '&SubmitCreds=Log+On&forcedownlevel=0&trusted=0'); 

Das Vorstehende ist eine schnelle Übersetzung von der Info auf der Seite, die Sie verknüpfen, müssen Sie urlencode () auf Ihren Variablen verwenden, wenn es Sonderzeichen. Sobald erfolgreich die oben funktioniert können Sie

$page=$cc->get('http://www.yourexchange.com/?whatever=youneed');

Die $ Seite wird das Zeichenfolge Ergebnis aus dem get enthält (es das Cookie in der Textdatei auf dieser Anfrage gespeichert sendet), dann können Sie reguläre Ausdrücke verwenden, um zu bekommen, was Sie brauchen.

Das sollten Sie sehr nahe kommen, was Sie brauchen.

Andere Tipps

Es sieht aus wie die Textdatei tatsächlich den Namen „cookies.txt“. Sie können eine leere Textdatei mit diesem Namen erstellen und es in das gleiche Verzeichnis laden. In Ihrem FTP-Client sollten Sie in der Lage sein, die Berechtigungen festlegen, glaube ich, 777 die Erlaubnis Code Sie benötigen. Wenn Sie den Erlaubniscode versuchen Überprüfung aller Boxen nicht nur eingeben können, um alle Berechtigungen zu geben.

re: letzter Beitrag,

das ist richtig, in dem das Skript läuft es im Grunde ein Client ist und die Cookie-Datei ist eine einfache Art und Weise das Cookie für die einfache Wiederverwendung von speichern.

Kette,

Ja, das bezieht sich auf eine Datei namens cookies.txt (Anmerkung: „Cookies“ mit einem „s“) im selben Ordner wie die Code-Datei curlclass.php

.

cURL verwendet diese Cookies auf nachfolgende Anfragen zu speichern und zu senden. Sie sind richtig in Ihrer Annahme, dass der Webserver die PHP-Skript ausgeführt wird als Client fungiert; Grundsätzlich ist es in den Exchange-Server anmelden, indem Sie eine POST an das Login-Formular zu simulieren, und dann das Cookie gespeichert wird und es mit jeder Anforderung, nur als Browser zu senden würde.

Erstellen Sie die Datei cookies.txt und die Berechtigungen gesetzt, so dass der Benutzer, die Apache-Instanz läuft in die Datei schreiben kann.

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