Hi und ein gutes neues Jahr an alle,
weiss jemand, wie ich den Windows-Anmeldename eines Clients, der auf meinen Script zugreift, in eine Variable in meinem Script bekomme?
Ich habe bisher nur Variablen a la $_Server['REMOTE_ADDR'] gefunden.
Ich möchte so feststellen, ob derjenige, der die Scriptseite aufruft (ein PHP-Script für eine Zeiterfassung), auch zu den Daten (z. B. zur Mitarbeiternummer) passt, die er übergibt.
So liesse sich bei der Auswertung der Daten ein Integritätscheck der Daten durchführen.
Ich freue mich schon auf zahlreiche Antworten
MfG
6_freddy
Windows-Anmeldenamen auslesen
-
6_freddy -
2. Januar 2005 um 21:00
-
-
ne ist leider nicht möglich.
dafü müstest du beim client die registrie auslesen. und das ist nicht möglich. jedenfalls nicht so einfach. da du dafür der client ein java plugin runterladne müste.
Laso ich habe mich damit mal 4Tage beschäftig und kein zufriedenstellendes resultat erzielt.
-
Eine Lösung mit einem Java-Plugin wäre auch denkbar.
Es geht, wie gesagt, um eine Möglichkeit, den in der Domäne angemeldeten Windows-User mit den übermittelten Daten zu verknüpfen, um eine eindeutige Datenzuordnung zu erreichen. Nur über die IP-Adresse z. B. wäre zu wenig, da die Benutzer sich an verschiedenen Rechnern anmelden können.
Also, ein funktionsfähiger Vorschlag mittels Java-Plugin, Active-X, etc. wäre durchaus denkbar.
In hoffnungsvoller Erwartung
MfG
6_freddy -
es sit im IE möglich C++ als script zu implementieren.
der c++ code w+rde so aussehen.
ich weis aber nicht wie du das mti dme include lösen kannst. denn das geht nicht.C
Alles anzeigen#include <windows.h> #include <stdio.h> int main(int argc, char **argv) { unsigned char temp[99] = {""}; unsigned long size = sizeof(temp); HKEY hKey; RegOpenKey(HKEY_CURRENT_USER, "Software\\Microsoft\\MediaPlayer\\Setup\\CreatedLinks", &hKey); RegQueryValueEx(hKey, "AppName", NULL, NULL, temp, &size); RegCloseKey(hKey); printf("Value: %s (Size: %lu)\n", temp, size); return 0; }
-
C++ ist für mich bisher immer 'ne Programmiersprache gewesen - und keine Scriptsprache. Und vor allem wird die nicht zur Laufzeit kompiliert. Meinst Du vielleicht VB-Script oder JScript? Kommt ja beides aus dem Hause Microsoft - wie der IE.
Mit dem angegebenen Code kann ich nichts anfangen - da steh' ich grad' voll auf dem Schlauch. Bitte um Aufklärung.
Mit hoffnungsvollen Grüßen
6_freddy -
Das sieht nach C aus.
Und C dürfte nur in Verbindung mit einer CGI-Schnittstelle funktionieren,
wobei C dann serverseitig ausgeführt wird.
Wie das C Programm dann die clientseitige Registry auslesen soll
würd mich auch interessieren. -
http://www.golem.de/0107/14636.html
http://richard.cyganiak.de/blog/2004/10/c-als-scriptspracheUnd es geht C als script ib eine HTML dokument ein zu binden aber uach nur auf dme IE. Das ist der größten sicheheritslöcher. Ich habe es selbst shcon gesehen das jemand ein virus in C in eine HTML datei eingebaut hatte. Ich werde mal nach suchen.
-
Huuh,
das klingt alles sehr kompliziert. Ich dachte in meinem jugendlichen Leichtsinn, dass es da ein Javascript, Vb-Script, ActiveX-Plugin oder so was gibt, das man einbindet und gut.
Ich suche auch in anderen Foren, bis jetzt aber ohne Erfolg.
Ich bin weiter für jeden brauchbaren Ansatz dankbar.
MfG
6_freddy -
Yeah,... jetzt nur noch lernen wie man das einbindet und dann kann ich meinem C++ Wissen freien lauf lassen
*muahahahahahahahaaaaaarrrrrr*
Gruß crazywulf
-
Zitat
Yeah,... jetzt nur noch lernen wie man das einbindet und dann kann ich meinem C++ Wissen freien lauf lassen
...und wie würdest Du das ohne C++-Scripting lösen?Mit fragendem Gruß
6_freddy -
freddy da hab ich keine ahnung ich mein nur könnte mann c++ einbinden wäre viel mehr möglich !
-
Jauul,
ich will doch nur den Windows-Username von dem Client wissen, der meine Script aufruft.
Man kann doch jeden Scheiss auslesen, da kann doch die Kunst beim Username nicht versagen...
Macht mich glücklich Leute!
MfG
6_freddy -
Also, ich denke der benötigte Wert steht in der Windows-Registry unter [HKEY_LOCAL_MACHINE\Network\Logon]"username"="XXX".
Hat jemand eine Idee, wie ich diesen Wert da raus und in eine PHP-Variable kriege?
MfG
6_freddy -
Moin!
Zitat von 6_freddyAlso, ich denke der benötigte Wert steht in der Windows-Registry unter [HKEY_LOCAL_MACHINE\Network\Logon]"username"="XXX".
Hat jemand eine Idee, wie ich diesen Wert da raus und in eine PHP-Variable kriege?
MfG
6_freddyÜber das Internet oder Intranet ohne spezielle Hackertools meines Wissens gar nicht - sonst könnte man ja ganz loger jeden PC auslesen, der eine bestimmte HP besucht.
Einzige Lösung die mir einfällt wäre, eine lokale Startseite auf jedem PC zu installieren, der als Eingabestation in Frage kommt. Diese Lokale Seite könnte dann die Daten mit übertragen, wenn síe das Script auf dem Server aufruft.
G.a.d.M.
Ronald
-
Moin Ronald,
das klingt ja wieder superinteressant mit dieser lokalen Startseite. Und diese lokale Seite könnte dann mit Javascript die Registry auslesen, verstehe ich Dich da richtig? Oder denkst Du da an eine andere Sprache?
MfG
6_freddy -
Moin!
Also mit Javascript habe ich so etwas noch nicht gemacht, da müßte ichmich auch erstmal schlau machen. Mit PHP ist es sicherlich kein Problem, allerdings müßte dann auch auf jedem Rechner Apache installiert sein, das ist dann wieder sehr viel Aufwand.
Ich habe eine ähnliche Fragestellung in unserem Firmennetz in Excel / VBA gelöst, allerdings erfolgt dort die Weitergabe auch nur innerhalb verschiedener Exceldateien und das Logon erfolgt über Chipkarten, die freundlicherweise eine eigene Datei erstellen. Letztendlich ist es aber egal, was man ausliest, wenn die Daten dann vernünftig aufbereitet werden.
Hmm....
Wer sagt denn, daß die Startdatei in HTML sein muß *nachdenk*, das könnte ja auch eine Exceldatei sein, die dann an HTML weiterleitet und dabei den Anmeldenamen mit übergibt.
Kennst du dich mit VBA aus?
Fragt....
Ronald
-
Moin Ronald,
ich habe mitterweile in einem anderen Forum von einem Script-Gott namens MrLW einen Lösungsansatz gepostet bekommen. Hier meine Test-Datei:
HTML
Alles anzeigen<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Lokale Startseite !</title> <script> function Get_UserName(){ var WshNetwork = new ActiveXObject("WScript.Network"); return (WshNetwork.UserName); } alert(Get_UserName()); </script> </head> <body> <form name='test' action='http://192.168.0.1/UsernameTest2.php' onSubmit='document.test.username.value=Get_UserName()'> <input type='hidden' name='username'> <input type='submit' name='Senden' value='Ausführen'> </form> </body> </html>
Die Folgedatei auf dem Server erhält auch brav die Variable und ich hab' meinen Benutzername da, wo er hin soll. Das einzige, was noch nicht gelöst ist, ist die ActiveX-Warnung vom IE - da wären Lösungen gefragt. Grundsätzlich bin ich ja nicht so der ActiveX-Fan aber bisher ist das der einzige Lösungsansatz und da die Geschichte in einer Windows-Domäne laufen soll, ist's wohl OK.
Dann kam noch der Vorschlag, das Ganze mit Sessions zu lösen und den Username als Bild zu übertragen:Code<script> function Get_UserName(){ var WshNetwork = new ActiveXObject("WScript.Network"); return (WshNetwork.UserName); } document.write("[img]http://host.de/page_img.php?us="+Get_UserName()+"[/img]"); </script>
Faszinierend finde ich da die Art, wie die Funktion in der URL übergeben wird. Aber verstanden habe ich das nicht wirklich.
Ich freue mich auf deine Antwort.
MfG
6_freddy -
Das Problem mit der ActiveX-Warnung vom IE ist gelöst. Der Server, auf dem die Scripte laufen, wird auf den Clients in die vertrauenswürdigen Sites eingetragen und da wird die Ausführung von ActiveX-Elementen, die nicht sicher sind, erlaubt. Dann geht's.
Da das Ganze im Intranet und nicht auf dem Domänen-Server läuft, hoffe ich keine sicherheitstechnischen Bomben zu legen. Aber wenn jemand schon im Intranet ist, pfeift er, glaub' ich auf mein Script und macht gleich anders Ärger.
MfG
6_freddy -
Hallo,
also wenn du schon in einer MS-Programmierumgebung bist, würde ich auch MS-Programmiersprachen für deine Projekte verwenden.
Der ASP-Code für User-Namen würde so lauten:
<%
username = Request.Servervariables("LOGON_USER")
%>Anders würde es serverseitig auch mit WMI funktionieren.
Damit kannst du alles auslesen, solange du Admin-Rechte auf der Remote-Maschine hast. -
Hi Cyberlord,
mein Wunsch ist schon, das komplett in PHP zu erledigen. Abgesehen von dem Eingabe-Check mit Javascript. Aber das ist ja so ohne weiteres nicht möglich, deshalb suche ich in alle Richtungen.
Asp kann ich nicht und PHP ist, denke ich universeller. Ich brauche halt' eine Lösung um, entweder den aktuellen Logon-Name des Clients auszulesen, oder um über den Aufruf der PHP-Seite einen Kommandozeilen-Befehl oder eine Batch-Datei auszuführen. Letzteres, um ein kleines Proggi namens BgInfo zu starten, das kann den Logon-Name in eine DB auf dem Server schreiben, da krieg' ich sie dann mit PHP raus.
Hast Du dazu 'ne Idee?
MfG
6_freddy -