os/passwörter für eigenen programmlogin nutzen?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
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
hans
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. 8) 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
perlverwöhnter gast

die verifizierung der user ist eigentlich genau das, was ich brauche. ich hatte das wohl vorher unglücklich formuliert
Benutzeravatar
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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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 :wink:
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
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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 :wink:

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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....
Antworten