11. Mai 200421 j 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
11. Mai 200421 j 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"].
11. Mai 200421 j das hab ich mir leider schon gedacht, danke. gibt es eine möglichkeit den benutzernamen durch jscript o.ä. auszulesen?
11. Mai 200421 j 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.
11. Mai 200421 j 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.
11. Mai 200421 j 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.
11. Mai 200421 j 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
11. Mai 200421 j 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]
11. Mai 200421 j 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]
11. Mai 200421 j 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.
11. Mai 200421 j 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.
11. Mai 200421 j 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:
11. Mai 200421 j 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
11. Mai 200421 j erstmal vielen dank für eure antworten, ich probiers mal aus und werde mich dann wieder melden, falls es nicht funktioniert.
11. Mai 200421 j 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.
11. Mai 200421 j Wenn Du das professionell lösen möchtest, wirst Du um Zertifikate nicht drumherum kommen, was aber auch etwas teurer werden wird.
18. Mai 200421 j 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);
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.