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
os/passwörter für eigenen programmlogin nutzen?
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
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
Keine Ahnung wie soetwas geht.
Hans
die verifizierung der user ist eigentlich genau das, was ich brauche. ich hatte das wohl vorher unglücklich formuliert
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
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
Damit bekommst du schon mal den Username heraus.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
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
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
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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
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.
Gruß
Christian
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
Christian
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Christian!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.
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
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
hi gerold, hi christian.
die lösung ist nicht schlecht, allerdings funktioniert sie nur bei dem user, der am os angemeldet ist....
die lösung ist nicht schlecht, allerdings funktioniert sie nur bei dem user, der am os angemeldet ist....