Kann ein Benutzer in der Domäne authentifiziert werden?
UPDATE:
Nun wird das Passwort dem Active Directory verschlüsselt übermittelt. Danke an Volker Steitz für den Hinweiß.
Imports System.Security
Imports System.DirectoryServices
Imports System.DirectoryServices.ActiveDirectory
Public Shared Function Authenticate(ByVal domain As String, ByVal username As String, ByVal password As String) As Boolean
Dim pwd As New SecureString()
Dim bAuth As Boolean = False
Dim entry As DirectoryEntry = Nothing
'Durchlaufe das Passwort und hänge es dem SecureString an
For Each c As Char In password
pwd.AppendChar(c)
Next
'Bewirkt, dass das Passwort nicht mehr verändert werden kann
pwd.MakeReadOnly()
'Passwort wird einem Pointer übergeben, damit dieser später "entschlüsselt" werden kann
Dim pPwd As IntPtr = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(pwd)
Try
entry = New DirectoryEntry(String.Concat("LDAP://", domain), username, System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPwd))
Dim nativeObject As Object = entry.NativeObject
bAuth = True
Catch ex As Exception
bAuth = False
Finally
entry.Close()
entry.Dispose()
End Try
Return bAuth
End Function
9 Kommentare zum Snippet