2009-03-04 4 views
1

Wie authentifizieren lokale Windows-Benutzerkonten in C# 3.0. Windows OS, auf dem ich das Passwort überprüfen muss, ist Vista und Win2K8. Hinweis: Benutzerkonto ist ein lokales Konto und kein Domänenkonto. Ich fand eine Lösung in C# 3.5 (PrincipalContext-Klasse), konnte aber nicht in 3.0-Framework finden. Bitte schlagen Sie vor, dankeAuthentifizierung des lokalen Windows-Benutzerkontos in C# 3.0

+0

Wofür authentifizieren Sie das Konto? Ist es so, dass Code als dieser Benutzer ausgeführt wird? Oder ist es möglich, auf eine Ressource als diesen Benutzer zuzugreifen? – mundeep

+0

Wir bereiten ein Installationsprogramm vor, das einige Konten auf dem System erstellt. Wenn das System bereits über diese Konten verfügt, müssen wir diese Konten mit den Kennwörtern authentifizieren, die von diesem Benutzer bereitgestellt werden. –

Antwort

3

Wenn Sie lokale Benutzer überprüfen möchten, können Sie LogonUser verwenden, um dies zu tun. Es kann sowohl lokale als auch entfernte Benutzer validieren. Für lokale Benutzer übergeben Sie einfach den Computernamen anstelle der Domäne.

Der folgende Blogeintrag geht ausführlich darauf ein, wie diese Funktion von C# aufgerufen wird.

[ http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/HowToGetATokenForAUser.html]

https://web.archive.org/web/20110224015020/http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/HowToGetATokenForAUser.html

EDIT

Dies ist der beste Weg, um einen Benutzer zu authentifizieren. Sobald Sie mit der Sitzung fertig sind, sollten Sie CloseHandle auf dem resultierenden Token aufrufen.

+0

Danke für die Info. Es funktioniert perfekt. Aber ich bin nur über die Anmeldesitzungen besorgt, die es erstellt. Ich habe keine Ahnung davon. Ist das ein guter Ansatz, dem wir folgen müssen, wenn wir nur das PWD validieren müssen? Sollte ich Code schreiben müssen, um sich von der Sitzung abzumelden? Gibt es einen geraden Weg zu validieren pwd –

+0

Es ist in Ordnung. Es ist die gleiche API, die jeder Dienst verwenden würde, um die Anmeldeinformationen eines Benutzers zu überprüfen. Ein Anmeldetyp von NETWORK (3) Ich glaube, dass ein Benutzerprofil oder ähnliches nicht geladen wird. Achten Sie darauf, den zurückgegebenen Griff zu schließen. – Josh

+2

Jared, der Link ist kaputt. –