Validieren von Windows-Benutzeranmeldeinformationen über native Java-APIs

8

Ich muss den Windows-Benutzernamen und die Anmeldeinformationen speichern, um später einen Prozess auszuführen, der diese Anmeldeinformationen erfordert.

Wenn ich diese als Eingaben vom Benutzer sammle, möchte ich überprüfen, ob die Zugangsdaten korrekt sind oder nicht. Gibt es eine native API in Java, die mir helfen kann, die Anmeldeinformationen des Windows-Systems zu überprüfen?

Ich habe die LoginContext -Klasse durchlaufen, aber es sieht so aus, als ob sie nur für SSO-Zwecke verwendet werden kann. Ein anderer Vorschlag, den ich erhielt, war, einen Prozess zu starten, der diese Anmeldeinformationen erfordert, und zu sehen, ob er funktioniert oder fehlschlägt. Aber das sieht nicht richtig aus.

Bitte lassen Sie mich wissen, ob jemand das schon einmal gemacht hat oder eine Idee hat, wie man es erledigt.

Danke, Piyush

    
user1774433 25.10.2012, 14:14
quelle

1 Antwort

7

Mit Zugangsdaten meinen Sie das tatsächliche Passwort des Benutzers? Dann können Sie LDAP verwenden, um eine Verbindung zu einem Windows Active Directory herzustellen. Siehe verwandte Frage: Windows-Kennwortauthentifizierung mit LDAP

Eine aufwendigere Methode besteht darin, native Windows-Aufrufe zu verwenden, möglicherweise über die JNA-Plattform: Ссылка

Es gibt ein Projekt namens "Waffel", das dies in eine nützlichere Bibliothek einpackt, siehe z. die Funktion logonUser in Ссылка . Dies spricht direkt mit der win32 advapi32.dll.

Damit können Sie auch Windows-Authentifizierung für lokale Benutzer ohne eine Domäne durchführen.

BEARBEITEN : Vollständig funktionierender Code von OP

%Vor%     
greyfairer 25.10.2012, 14:55
quelle