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

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
perlverwöhnter gast

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

Beitragvon perlverwöhnter gast » Freitag 30. Juli 2004, 13:14

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
Benutzeravatar
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Beitragvon hans » Freitag 30. Juli 2004, 20:05

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

Beitragvon perlverwöhnter gast » Dienstag 3. August 2004, 13:09

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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 6. August 2004, 11:09

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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 6. August 2004, 11:23

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

Beitragvon perlverwöhnter gast » Montag 9. August 2004, 14:02

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

Win 32 Extensions

Beitragvon intruder0815 » Dienstag 10. August 2004, 08:33

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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Win 32 Extensions

Beitragvon gerold » Dienstag 10. August 2004, 09:34

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

Beitragvon perlverwöhnter gast » Mittwoch 11. August 2004, 13:01

hi gerold, hi christian.

die lösung ist nicht schlecht, allerdings funktioniert sie nur bei dem user, der am os angemeldet ist....

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder