Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

(php) angemeldeten windows 2000-username auslesen?

Empfohlene Antworten

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

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

funktioniert das unter apache auch?

nein das ist nur unter IIS möglich

das hab ich mir leider schon gedacht, danke. gibt es eine möglichkeit den benutzernamen durch jscript o.ä. auszulesen?

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.

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

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.

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

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]

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]

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.

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.

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

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

erstmal vielen dank für eure antworten, ich probiers mal aus und werde mich dann wieder melden, falls es nicht funktioniert. :)

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.

Wenn Du das professionell lösen möchtest, wirst Du um Zertifikate nicht drumherum kommen, was aber auch etwas teurer werden wird.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.