Seite 1 von 1
os/passwörter für eigenen programmlogin nutzen?
Verfasst: Freitag 30. Juli 2004, 13:14
von perlverwöhnter gast
hiho,
kennt jemand von euch eine möglichkeit, wie man mittels python eine schnittstelle zu den os/passwörtern bekommt. wir haben hier ein windowsxp und ich würde gerne ein kleines logintkinterchen bauen, wo sich die user mit ihrem windows-usernamen und dem aktuellen passwort anmelden müssen.
schon mal danke im vorraus
Verfasst: Freitag 30. Juli 2004, 20:05
von hans
Will doch schwer hoffen, dass das OS die Passwörter nicht rausrückt.

Das wäre ja die größte Sicherheitslücke, die man sich vorstellen kann. Das System darf höchtstens deine Useranfrage verifizieren.
Keine Ahnung wie soetwas geht.
Hans
Verfasst: Dienstag 3. August 2004, 13:09
von perlverwöhnter gast
die verifizierung der user ist eigentlich genau das, was ich brauche. ich hatte das wohl vorher unglücklich formuliert
Verfasst: Freitag 6. August 2004, 11:09
von gerold
So ganz kann ich dir noch nicht weiter helfen. Aber ein Ansatz ist das Modul
getpass.
Damit bekommst du schon mal den Username heraus.
mfg
Gerold

Verfasst: Freitag 6. August 2004, 11:23
von gerold
Hier noch ein Hinweis.
So macht man es unter Visual Basic:
http://vb-tec.de/chkpwd.htm
Vieleicht hilft es dir weiter. Man kann mit den Python-Win32-Extentions ja auch Windows-API´s aufrufen. Du kannst es dir ja auch mit Visual Basic kompillieren und eine VB-DLL über Python aufrufen.
Vorsicht (Ausschnitt aus der zugehörigen Seite):
Um diese Beispiele erfolgreich ausführen zu können, muss der angemeldete Benutzer die Rechte "Als Teil des Betriebssystems handeln" und "Anheben einer Quote" besitzen.
mfg
Gerold

Verfasst: Montag 9. August 2004, 14:02
von perlverwöhnter gast
hi gerold. das getpass modul sieht schon mal recht gut aus. ich sehe mir das jetzt mal genau an, ich melde mich nacher nochmal wenn ich weiss ob es alle meine probleme löst oder nicht

Win 32 Extensions
Verfasst: Dienstag 10. August 2004, 08:33
von intruder0815
Hallo,
man kann das über die Win32 Extensions von Python machen.
Dort gibt es ein Modul win32security und dann die Funktion Logon,
wenn der User sich anmelden kann wird der Username zurück gegeben,
ansonsten eine Exception.
Code: Alles auswählen
import win32security
import win32con
import win32api
import sys
import os
class Impersonate:
def __init__(self):
self.domain = 'domain'
self.login = os.environ['USERNAME']
self.password = '*******'
def logon(self):
self.handel=win32security.LogonUser(self.login,
self.domain,
self.password,
win32con.LOGON32_LOGON_INTERACTIVE,
win32con.LOGON32_PROVIDER_DEFAULT
)
win32security.ImpersonateLoggedOnUser(self.handel)
def logoff(self):
win32security.RevertToSelf() #terminates impersonation
self.handel.Close() #guarantees cleanup
if __name__ == '__main__':
a=Impersonate()
try:
a.logon() #become the user
print win32api.GetUserName() #show you're someone else
a.logoff() #return to normal
except:
print sys.exc_type , sys.exc_value
Gruß
Christian
Re: Win 32 Extensions
Verfasst: Dienstag 10. August 2004, 09:34
von gerold
intruder0815 hat geschrieben:man kann das über die Win32 Extensions von Python machen. Dort gibt es ein Modul win32security und dann die Funktion Logon, wenn der User sich anmelden kann wird der Username zurück gegeben, ansonsten eine Exception.
Hallo Christian!

nicht schlecht, dein Vorschlag.
Ich glaube, dass ich mir die Win32 Extentions einmal ein bischen genauer ansehen werde.
Da sind ja richtige Schätze versteckt
mfg
Gerold

Verfasst: Mittwoch 11. August 2004, 13:01
von perlverwöhnter gast
hi gerold, hi christian.
die lösung ist nicht schlecht, allerdings funktioniert sie nur bei dem user, der am os angemeldet ist....