Feedback

VB - Windows Passwort überprüfen

Veröffentlicht von am 11/6/2007
(3 Bewertungen)
Diese Funktion prüft ob ein angegebenes Windows Passwort und Benutzername richtig sind.

Man gibt ein Benutzername an und ein Passwort. Wenn der Benutzername und das Passwort gültig bzw. richtig sind gibt die Funktion True zurück.

Passwort muss also zum Benutzernamen passen.
Private Declare Auto Function LogonUser Lib "advapi32.dll" ( _
    ByVal lpszUsername As String, _
    ByVal lpszDomain As String, _
    ByVal lpszPassword As String, _
    ByVal dwLogonType As LogonType, _
    ByVal dwLogonProvider As Integer, _
    ByRef phToken As IntPtr) _
As Integer

Private Declare Auto Function CloseHandle Lib "kernel32.dll" ( _
    ByVal hObject As IntPtr) _
As Boolean

Public Enum LogonType As Integer
    LOGON32_LOGON_INTERACTIVE = 2
    LOGON32_LOGON_NETWORK = 3
    LOGON32_LOGON_BATCH = 4
    LOGON32_LOGON_SERVICE = 5
    LOGON32_LOGON_UNLOCK = 7
    LOGON32_LOGON_NETWORK_CLEARTEXT = 8
    LOGON32_LOGON_NEW_CREDENTIALS = 9
End Enum

''' <summary>
''' Diese Funktion prüft ob ein angegebenes Windows Passwort und Benutzername richtig sind.
''' </summary>
''' <param name="Username">Der Windows Benutzername</param>
''' <param name="Password">Das Windows Passwort</param>
''' <param name="Domain">Optionale Domain</param>
Public Function IsNTPasswordValid(ByVal Username As String, ByVal Password As String, Optional ByVal Domain As String = "") As Boolean
    Dim Token As New IntPtr
    LogonUser(Username, Domain, Password, LogonType.LOGON32_LOGON_INTERACTIVE, 0, Token)
    CloseHandle(Token)
    If Token.ToInt32 <> 0 Then Return True
End Function
Abgelegt unter NT, Passwort, Benutzername, Password, Username.

2 Kommentare zum Snippet

Alois T. schrieb am 11/7/2007:
Thats Great !!!
c#-Hacker schrieb am 8/24/2013:
Für alle C#-Programmierer:
Das Snippet wurde von Macximilian in C# übersetzt.
http://dotnet-snippets.de/snippet/windows-passwort-ueberpruefen-uebersetzung/861
 

Logge dich ein, um hier zu kommentieren!