Frage

Ich bin mit der Logonuser-Funktion ( http: / /msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx ) zur Authentifizierung von Benutzern. Allerdings habe ich festgestellt, dass, wenn ein Benutzer sein Passwort ändert (dh von Password1 zu Password2) beiden Passwörter werden dann arbeiten. Allerdings möchte ich es so, dass nur das aktuelle Passwort verwendet werden kann. Gibt es etwas, das ich gesetzt müssen, um zu bekommen, dies so zu arbeiten?

Ich bin mit dem folgenden Code-Snippet:

LogonUser(nt_id, NULL, nt_password, LOGON32_LOGON_NETWORK, 3, &hToken );

nt_id wird in dem Format USER@USERDOMAIN.SOMETHING.COM

und ich habe 3 dort anstelle von LOGON32_PROVIDER_WINNT50, weil ich ein Compiler-Fehler sagten undeclaired Kennung für LOGON32_PROVIDER_WINNT50 bekommen würde (dies ein Symptom sein könnte?), Aber ich weiß, dass es als 3 definiert ist.

Danke, -Pete

War es hilfreich?

Lösung

Der Fehler bei der Kompilierung ist wahrscheinlich dort, weil Sie nicht

#define _WIN32_WINNT 0x0500

, bevor einschließlich windows.h oder hinzugefügt, um es als eine Kompilierung-Einstellung (-D_WIN32_WINNT = 0x0500).

Warum beide Logonuser würde das neue und das alte Passwort mit der Arbeit ist aber über mich. Aber da, was wollen Sie ist die Authentifizierung von Benutzern (im Gegensatz zu ihnen Identitätswechsel) nach MSDN ist es angebracht, die SSPI API ( hier die empfohlene Methode).

Andere Tipps

Dies ist eine Netzwerkeinstellung. Standardmäßig Windows Passwörter bleiben für eine Stunde gültig, nachdem sie geändert werden. Ihr Netzwerk-Administrator kann diese bei Bedarf ändern. (Beachten Sie, dass dies nicht die interaktive Anmeldung nicht beeinflusst, aber es alle programmatischen Methoden nicht beeinträchtigt.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top