Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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"].

Geschrieben

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.

Geschrieben

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. :D:D:D

Geschrieben
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

Geschrieben

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]

Geschrieben

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]

Geschrieben

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.

Geschrieben

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.

Geschrieben

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. :D :floet: :D

Geschrieben
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

Geschrieben

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.

Geschrieben

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);

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...