kRyptOnIte Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 hi, ist es möglich, dass ich mit php irgendwie den angemeldeten windows-usernamen auslesen kann? im endeffekt will ich ein login script für meinen arbeitgeber schreiben, in welchem die benutzer dann nur noch das passwort eingeben müssen. ist das mit php möglich? wenn nein, gibt es eine andere möglichkeit (evtl. andere programmiersprache) diesen benutzernamen auszulesen? vielen dank im voraus. kryptonite Zitieren
goepp Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 hajo! je nach server sollte sich eine entsprechende globale variable finden lassen. beim iis steht der loginname bei ausgeschalteter anonymer anmeldung in _SERVER["LOGON_USER"], _SERVER["AUTH_USER"] und _SERVER["REMOTE_USER"]. Zitieren
kRyptOnIte Geschrieben 11. Mai 2004 Autor Geschrieben 11. Mai 2004 funktioniert das unter apache auch? Zitieren
kRyptOnIte Geschrieben 11. Mai 2004 Autor Geschrieben 11. Mai 2004 das hab ich mir leider schon gedacht, danke. gibt es eine möglichkeit den benutzernamen durch jscript o.ä. auszulesen? Zitieren
kills Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 in PHP ist mir die möglichkeit nur in Verbindung mit dem IIS bekannt. Mit Javascript ist es auf jeden fall unmöglich. ob es in ASP, JScript o.ä. möglich ist, kann ich dir leider nicht sagen. Zitieren
goepp Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 hajo! mit clientseitigem vb- oder jscript ist es mit den damit verbunden risiken kein problem. du könntest zum beispiel den usernamen aus der registry oder den umgebungsvariablen auslesen und ihn an die url einem php-script übergeben. Zitieren
kRyptOnIte Geschrieben 11. Mai 2004 Autor Geschrieben 11. Mai 2004 ich sehe das riskio nicht allzu hoch, weil die anwendung nur im internen firmennetz betrieben wird und im nachhinein nochmal eine validierung der zugangsdaten erfolgt. Zitieren
kills Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 ich sehe das riskio nicht allzu hoch, weil die anwendung nur im internen firmennetz betrieben wird und im nachhinein nochmal eine validierung der zugangsdaten erfolgt. das ist natürlich korrekt, aber jeder user in deinem lan koennte an der stelle an der dein vb script den parameter anhaengt, jeden anderen usernamen usw angeben. aber da du sowieso noch ein kennwort abfragst, ist das wie du schon sagtest kein Sicherheitsloch Zitieren
goepp Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 hajo! so in etwa hatte ich es vor längerer zeit unter nt gelöst. ... <script language="JavaScript" type="text/javascript"> function GetAccount() { var wshell= new ActiveXObject("WScript.Shell"); var RegPfad="HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultUserName"; var UserName=wshell.RegRead(RegPfad); window.location.href = "./index.php?nr="+UserName; } </script> ... [/PHP] Zitieren
kRyptOnIte Geschrieben 11. Mai 2004 Autor Geschrieben 11. Mai 2004 danke, habs jetzt entsprechend in mein script eingebaut, aber es scheint leider unter windows 2000 nicht zu funktionieren. oder habe ich etwa einen fehler gemacht? muss das script evtl. in den head? ... <body> <script type="text/javascript"> <!-- var wshell= new ActiveXObject("WScript.Shell"); var RegPfad="HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultUserName"; var UserName=wshell.RegRead(RegPfad); document.write(UserName); //--> </script> ... </body> [/PHP] Zitieren
goepp Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 hajo! zum einen muss auf den client windows scripting host vorhanden sein und der user die rechte haben die registry an dieser stelle zu lesen. ich habs bei mir probiert und er schreibt ganz fein und artig meinen usernamen hin. Zitieren
kRyptOnIte Geschrieben 11. Mai 2004 Autor Geschrieben 11. Mai 2004 kriterium 1 wäre erfüllt (wsh), aber kriterium 2 lässt die sache scheitern, da bei uns nicht jeder lokale admin-rechte hat und somit anscheinend nicht aus registry lesen kann. anscheinend ist es wesentlich schwieriger als zuerst angenommen, schade dass mein chef mir das als anforderung genannt hat. Zitieren
goepp Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 hajo! dann wäre noch die möglichkeit den usernamen aus den umgebungsvariablen auszulesen, falls er da hinterlegt ist. diese sollt per wsh ebenfalls problemlos möglich sein. nur habe ich dafür keinen code zur hand. oder du stellst dir noch noch nen iis in die ecke der das dann per asp macht und leitest auf den apache weiter. :floet: Zitieren
kills Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 kriterium 1 wäre erfüllt (wsh), aber kriterium 2 lässt die sache scheitern, da bei uns nicht jeder lokale admin-rechte hat und somit anscheinend nicht aus registry lesen kann. anscheinend ist es wesentlich schwieriger als zuerst angenommen, schade dass mein chef mir das als anforderung genannt hat. notfalls beim Einloggen der User den Username per cookie setzen, und beim wieder aufruf der site vom user einfach schauen ob ein cookie da ist, wenn ja den username aus dem cookie als default in deiner text/selectbox setzen Zitieren
kRyptOnIte Geschrieben 11. Mai 2004 Autor Geschrieben 11. Mai 2004 erstmal vielen dank für eure antworten, ich probiers mal aus und werde mich dann wieder melden, falls es nicht funktioniert. Zitieren
etreu Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 Du könntest es clientseitig mit nem Java-Applet machen. Da kannst du auch den Usernamen inkl. Passwort per POST an die entsprechende Seite schicken. Bei Bedarf kannst du die Daten auch schon verschlüsseln. Java bietet hier gute Hilfe beim Lesen des angemeldeten Users OHNE auf die Registry zuzugreifen. Zitieren
Rohde Geschrieben 11. Mai 2004 Geschrieben 11. Mai 2004 Wenn Du das professionell lösen möchtest, wirst Du um Zertifikate nicht drumherum kommen, was aber auch etwas teurer werden wird. Zitieren
??? Geschrieben 18. Mai 2004 Geschrieben 18. Mai 2004 Also es gibt auf jeden Fall eine Lösung für dein Problem, habe ich selber früher benutzt. Du mußt als erstes ein Modul für den Apache-Server installieren. http://www.runestig.com/mod_ntlm.html So wenn das Modul konfigurert ist, dann habe ich es mit einer .htaccess Datei gelöst mit folgendem Inhalt: # AuthType NTLM # NTLMAuth On # NTLMAuthoritative On # NTLMOfferBasic On # require valid-user Die Datei einfach in das Verzeichnis legen wo auch Euer Script liegt. So und nun kannst mit Hilfe von PHP an den Usernamen kommen. $login = substr($_SERVER[REMOTE_USER], 12); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.