Wie kommst du auf den aktuellen Benutzer angemeldet sein, um einen apache-Reich?
Schreibe ich einen einfachen in-house-frontend zu Subversion. Wir haben einen Apache-Server serviert die SVN-repositories Dank WebDAV. Auch die Authentifizierung erfolgt durch Apache-Reich und Open Directory. Für was es Wert ist, das ist im Grunde eine ziemlich vanilla von Mac OS X Server 10.6-setup.
Nun, einige der Aufgaben, die unser front-end verantwortlich ist der Auftakt Notwendigkeit zu wissen, den Benutzernamen des Benutzers ein, den Aufruf der Aktion. Zum Beispiel erzeugen Sie ein repository braucht es, damit wir entsprechende Protokolle, die tatsächlich erstellt wurden. Wenn ich nicht diese Informationen liefern, SVN benutzt nur den Prozess, der es erstellt, welche in unserem Fall ist der Benutzer, der laufende httpd.
Dies mache ich in php, aber ich glaube nicht unbedingt implementieren müssen, um diese mit Hilfe von php. Wenn ich die Daten in ein shell-Skript, dass das auch in Ordnung. Was zählt, ist, dass ich irgendwie die Informationen. Die Lösung, die ich zunächst entwickelt, das ich annahm, arbeitete seit es korrekt gemeldet, mein Benutzername ist, einfach rufen:
get_current_user();
Jedoch scheint dies immer Rückkehr meinen user-Namen, auch wenn einige andere user ist Auftakt der Aktion, während Sie sich angemeldet haben, um das Reich. Gibt es einen Weg, um die richtigen Benutzer?
EDIT: ich vielleicht etwas zu schnell springen die Waffe hier. Es sieht aus, als wenn die erstere variable nicht gesetzt, wird nach einer gewissen Zeit. Der Benutzer ist jedoch noch angemeldet, da es keine Aufforderung zum login. So, die unten vorgeschlagene Lösung ist nicht wirklich zutreffend.
Jetzt fühle ich mich wie ein idjit. Diese einfache snippet funktionierte (obwohl es schwer zu finden):
$username = $_SERVER["PHP_AUTH_USER"];
Hatte dies jedoch nicht:
$username = apache_getenv("REMOTE_USER");
Hat jemand eine Idee, warum letzteres nicht funktioniert? Den nur docs, die ich finden konnte vermuten, dass dies funktioniert nur auf Apache 2. Allerdings bin ich in der Tat läuft Apache 2, so dass konnte nicht sein.
InformationsquelleAutor Marcus Stade | 2009-11-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, nachdem ich mal gegoogelt, für eine lange Zeit habe ich realisiert, dass die Methode für das abrufen der Benutzer-name geändert haben, mit so ziemlich jedem PHP-version. Die aktuelle Lösung scheint zu sein, der ist um die Daten aus den folgenden Variablen:
Jedoch diese variable kann oder kann nicht festgelegt werden. Der Grund, warum ich wohl die Informationen korrekt war, dass die Informationen, die gesendet wurde, in den Kopf, wenn ich mich eingeloggt habe um das Reich und besuchte dann das PHP-Skript vor, das war außerhalb, sagte Reich. Die information kam, aber war nicht zuverlässig.
Den Apache docs tatsächlich sagen Sie das in einem "ach ÜBRIGENS"-Mode. Ich bin mir nicht sicher, ob die Authentifizierung erfolgt über über mehrere realms auf dem gleichen host, in jedem Fall aber, dass das problem gelöst ist.
InformationsquelleAutor Marcus Stade